Metadata-Version: 2.1
Name: json-doc
Version: 0.1
Summary: Utility Functions for JSON Document
Home-page: http://github.com/ddfs/json-doc
Author: Fatih Piristine
Author-email: fatihpiristine@gmail.com
License: Apache Software License
Keywords: json,document,pointer
Platform: any
Classifier: Programming Language :: Python
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Description-Content-Type: text/markdown

# python-json-doc
Utility functions for JSON Document

[![Build Status](https://travis-ci.org/ddfs/python-json-doc.svg?branch=master)](https://travis-ci.org/ddfs/python-json-doc)
[![Coverage Status](https://coveralls.io/repos/github/ddfs/python-json-doc/badge.svg?branch=master)](https://coveralls.io/github/ddfs/python-json-doc?branch=master)
[![GitHub license](https://img.shields.io/github/license/ddfs/python-json-doc.svg)](https://github.com/ddfs/python-json-doc/blob/master/LICENSE)

It can handle get/set/pop/has operations on nodes

Extended `set` functions for lists:
- append: appends to the list
- extend: extends the list
- replace: `search` and replace in the list  
- replace_re: `search` and replace in the list using regular expression

No external dependencies. Tests requires `unittest2` module

Compatible with Python 2.6+ and 3.3+ 


Examples
---
```python 
doc = {
    'a': {
        'deep': {
            'nested': {
                'list': [1, 2, 3, {'dict': 'OK'}],
                'string': 'string',
                'hex': 0x010101
            }
        },
    },
    'list': [1, 2, 3]
}

# get
print json_doc_get(doc, '/a/deep/nested/list/3/dict')
>> OK

# set
print json_doc_set(doc, '/a/deep/nested/string', 'new string')['a']['deep']['nested']['string']
>> new string

# pop: target exist
print json_doc_pop(doc, '/a/deep/nested/list/2')
>> True

# pop: target doesn't exist
print json_doc_pop(doc, '/a/deep/nested/list/5')
>> False

# has item
print json_doc_has(doc, '/a/deep/nested/list/3/dict')
>> True

# has item with value
print json_doc_has(doc, '/a/deep/nested/list/3/dict', 'OK')
>> True

## List only functions

# append
print json_doc_append(doc, '/list', 4)['list']
[1, 2, 3, 4]

# extend
print json_doc_extend(doc, '/list', [5, 6, 7])['list']
[1, 2, 3, 4, 5, 6, 7]

# replace: value -> new value, search -> old value
print json_doc_replace(doc, '/list', 44, 4)['list']
[1, 2, 3, 44, 5, 6, 7]

# replace_re: -> new value, search -> regex
[111, 2, 3, 44, 5, 6, 7]

```


