Java 如何编写以下Json对象?

Java 如何编写以下Json对象?,java,json,gson,Java,Json,Gson,我想创建一个Json对象,如下所示: {"name": "Maximum", "children": [ {"name": "where", "size": 299}, {"name": "xor", "size": 354}, {"name": "_", "size": 264} ] } 使用哪个库来创建上面的Json字符串以及代码应

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

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

使用哪个库来创建上面的Json字符串以及代码应该是什么样子?

这是简单的javascript

var obj = {"name": "Maximum"};
var children = [];
children.push({"name":"where", "size": 299});
obj["children"] = children;
试试看。它对此有很好的支持。看看这个

您的类结构如下所示:

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);

尝试XStream Json解析器。我已经用过了

有了它,您可以做类似的事情:

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());

  }

}
import java.util.ArrayList;
导入java.util.List;
导入org.codehaus.jettison.json.JSONException;
导入org.codehaus.jettison.json.JSONObject;
公共类JSONTest{
公共静态void main(最终字符串[]args)抛出JSONException{
final JSONObject JSONObject=new JSONObject();
jsonObject.put(“名称”、“最大值”);
最终列表子项=新的ArrayList();
final JSONObject child1=新JSONObject();
子女1.填写(“姓名”、“所在地”);
child1.put(“大小”,299);
添加(child1);
final JSONObject child2=新的JSONObject();
儿童2.输入(“姓名”、“异或”);
儿童2.放置(“尺寸”,354);
添加(child2);
final JSONObject child3=新JSONObject();
孩子3.把(“姓名”和“”);
儿童3.放置(“尺寸”,264);
添加(child3);
jsonObject.put(“儿童”,儿童);
System.out.println(jsonObject.toString());
}
}

当您的问题被标记为GSON时,您正在询问哪个库?我尝试了GSON,但不知何故没有返回所需的结果。所以,我想我应该加上这个标签来确认。你认为Gson可以创建上面的字符串吗?我很肯定它可以。一种简单的方法是定义两个类,其中一个类将具有字符串名称和子类[]。Children类将有两个属性String name和int size。不过,我不知道是否有更好的方法(例如列表),这可能会有所帮助:问题是Java。爪哇!=Javascript。