GithubHelp home page GithubHelp logo

antonholmquist / jason Goto Github PK

View Code? Open in Web Editor NEW
1.1K 1.1K 65.0 81 KB

Easy-to-use JSON Library for Go

Home Page: http://godoc.org/github.com/antonholmquist/jason

License: MIT License

Go 100.00%

jason's People

Contributors

antonholmquist avatar bahlo avatar fly avatar manbeardo avatar ms-xy avatar mtiller avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jason's Issues

Setting values

It would be nice to have an API that also allowed mutation. Any interest?

Would you accept a pull request with such functionality?

README Wrong

json.NewValueFromString / NewValueFromReader are used around the README but don't appear to exist.

Highly nested Json

Hi,

I've a highly nested Json that I want to iterate through. Here is an example.

[{"a":[{"3":5},{"2":3},{"b":[{"n":2},{"b":"c"},{"c":[{"d":1},{"u":2}]}]}]},{"a":[{"3":5},{"2":3},{"b":[{"n":2},{"b":"c"},{"c":[{"d":1},{"f":[[2,3,4,{"tik":1}],3,5]}]}]}]},{"a":[{"3":5},{"2":3},{"b":[{"n":2},{"b":"c"},{"c":[{"d":1},{"i":2}]}]}]}]

Ho do I get to the tik key?

Also probably an unrelated question, is there a way how to search this highly nested Json based on key or value?

Thank you

Idea: NewObject with Go values

First: We use this library at work in almost every service and really love it! ๐ŸŽ‰

But we sometimes need to create Jason objects to call functions which expect them.
What do you think of a func to create objects via Go values? We're currently just marshalling via encoding/json and importing to jason with NewObjectFromBytes, but I'm sure there's a better and more performant way to achieve this.

If you're ok with this, I'm happy to create a PR.
My idea would be something like jason.NewObject(map[string]interface{}) *jason.Object.
What do you think?

Keep up the good work ๐Ÿ’ช

Variadic GetString

This throws an error:
// components is an array of keys, first two elements being some internal values
var children []string
children=components[2:]
value,err:=v.GetString(children...)

However, this works:
value,err:=v.GetString(children[0],children[1],[children[2])

Am I doing something wrong?

Remove "idiomatic" from the repo description

While this library does present an interesting and totally valid alternative, it's not idiomatic at all. The most common approach (by far) is to just use the encoding/json package. This includes parsing arbitrary data, as detailed in the JSON and Go blog post.

THANK YOU FOR THIS LIB!

You're a lifesaver. The default package is easy to use with short snippets of json; but, this makes working with large json files a dream. Thank you so much.

data

If the amount of data to 50kb, performance testing will be very slow๏ผŸ

multiple-value v.GetString() in single-value context

package main

import (
	"fmt"
	"github.com/antonholmquist/jason"
)

func main() {

	data := []byte(`{
		"hits":{
			"total":2,
			"max_score":4.631368,
			"hits":[
				{
					"_source":{
						"account_number":298,
						"balance":34334,
						"firstname":"Bullock",
						"lastname":"Marsh"
					}
				},
				{
					"_source":{
						"account_number":25,
						"balance":40540,
						"firstname":"Virginia",
						"lastname":"Ayala"
					}
				}
			]
		}
	}`)

	js, _ := jason.NewObjectFromBytes(data)

	//get total
	total, _ := js.GetInt64("hits", "total")
	fmt.Println(total)

	//get _source list
	hitsjson, _ := js.GetObjectArray("hits", "hits")
	for _, v := range hitsjson {
		fmt.Printf("%v\n", v.GetString("_source", "firstname"))
	}
}

error:

multiple-value v.GetString() in single-value context

thank you!

after doing so much json parsing with interface {} directly this is wonderful.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.