<commit_before>goviews
=======

Type-safe access into generic containers in golang.

TODO
====

There is a lot left to implement, including substruct filling, slices, handling
of nil values via pointers in the struct, and cleanup of the code. 

Motivation
==========

When dealing with schema-less JSON data, usually deserialized into a ``map[string]interface{}``, it became
a pain to gain access to nested data. It also led to ugly code full of type checks, obtuse helper functions,
and endless error checking. This library is meant to be an attempt to ease this pain.

Example
=======
    package main

    import "github.com/justonia/goviews"

    func example() {
        someJson := []byte(`
        {
            "a": {
                "b": {
                    "c": 2000.12354,
                    "d": {
                        "field1": "foobar"<commit_msg>Update readme with new TODO<commit_after>goviews
=======

Type-safe access into generic containers in golang.

TODO
====

There is a lot left to implement, including type reflection caching, substruct filling, slices, handling
of nil values via pointers in the struct, and cleanup of the code. 

Motivation
==========

When dealing with schema-less JSON data, usually deserialized into a ``map[string]interface{}``, it became
a pain to gain access to nested data. It also led to ugly code full of type checks, obtuse helper functions,
and endless error checking. This library is meant to be an attempt to ease this pain.

Example
=======
    package main

    import "github.com/justonia/goviews"

    func example() {
        someJson := []byte(`
        {
            "a": {
                "b": {
                    "c": 2000.12354,
                    "d": {
                        "field1": "foobar"
{'fraction_non_alphanumeric': 0.10321489001692047, 'fraction_numerical': 0.011280315848843767, 'mean_word_length': 2.4921259842519685, 'pattern_counts': {'":': 10, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7496853', 'n_tokens_mistral': 503, 'n_tokens_neox': 457, 'n_words': 208}