你如何编码以下Json对象?

时间:2012-07-11 05:25:23

标签: java json gson

我想创建一个如下所示的Json对象:

{"name": "Maximum", "children": [
                    {"name": "where", "size": 299},
                    {"name": "xor", "size": 354},
                    {"name": "_", "size": 264}
                    ]
}

用于创建上述Json字符串的库以及代码应该如何?

4 个答案:

答案 0 :(得分:4)

试试gson。它对此有很好的支持。看看这个user guide

您的班级结构如下:

class Parent{
        String name;
        Children[] children;
//getter and setter
    }
    class Children{
        String name;
        int size;
//getter and setter
    }

然后在你的代码中:

   Parent parent = new Parent();
    //poppulate parent object with required values 
    Gson gson = new Gson();
    gson.toJson(parent);

答案 1 :(得分:1)

尝试XStream Json Parser。我用过它。

http://x-stream.github.io/json-tutorial.html

答案 2 :(得分:0)

这是简单的javascript。

var obj = {"name": "Maximum"};
var children = [];
children.push({"name":"where", "size": 299});
obj["children"] = children;

答案 3 :(得分:0)

使用jettison你可以做类似的事情:

import java.util.ArrayList;
import java.util.List;

import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;


public class JSONTest {

  public static void main(final String[] args) throws JSONException {
    final JSONObject jsonObject = new JSONObject();
    jsonObject.put("name", "Maximum");

    final List<JSONObject> children = new ArrayList<JSONObject>();

    final JSONObject child1 = new JSONObject();
    child1.put("name", "where");
    child1.put("size", 299);
    children.add(child1);

    final JSONObject child2 = new JSONObject();
    child2.put("name", "xor");
    child2.put("size", 354);
    children.add(child2);

    final JSONObject child3 = new JSONObject();
    child3.put("name", "_");
    child3.put("size", 264);
    children.add(child3);

    jsonObject.put("children", children);
    System.out.println(jsonObject.toString());

  }

}