2

我正在尝试使用这种精确的 JSON 语法,但无法使用:

{
    "sun":"yellow",
    "vegetables":[{
        "apple":"red",
        "banana":"yellow",
        "melon":"orange"
    }]
}

我能得到的最接近的是:

{
    "sun":"yellow",
    "vegetables":["{
        "apple":"red",
        "banana":"yellow",
        "melon":"orange"
    "]}
}

这就是我正在做的事情:

JSONObject json = new JSONObject();
json.put("sun","yellow");

ArrayList<HashMap<String,Object>> test = new ArrayList<HashMap<String,Object>>();
HashMap<String,Object> params = new HashMap<String, Object>();
params.put("apple","red");
params.put("banana","yellow");
params.put("melon","orange");

test.add(params);
json.put("fruits",test);

我想不通,我错过了什么吗?

4

2 回答 2

6

应该是这样的——

JSONObject json = new JSONObject();
json.put("sun","yellow");

JSONArray veg = new JSONArray();
JSONObject vegData = new JSONObject();
vegData.put("apple","red");
vegData.put("banana","yellow");
vegData.put("melon","orange");

veg.put(vegData);   

json.put("vegetables",veg);

我正在使用Jettison. 您可以在此处找到详细信息。

于 2012-06-14T23:04:27.643 回答
0

为什么不做嵌套?这里有一些例子

JSONObject outer = new JSONObject();
JSONObject inner = new JSONObject();
JSONArray  array = new JSONArray();

outer.put("sun", "yellow");
array.put("apple", "red");
array.put("bannanna", "yellow");
array.put("melon", "orange");

inner.put(array);

outer.put("Vegtables":inner);
于 2012-06-14T23:10:18.873 回答