如何使用net.sf.json在Java中生成JSON字符串?

sun*_*leo 9 java json

我正在努力在Java中生成JSON String.

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

JSONArray ja = new JSONArray();
JSONObject js = new JSONObject();
JSONObject j = new JSONObject();

String s = "[{\"shakil\",\"29\",\"7676\"}]";

js.put("id", "1");
js.put("data", s);
ja.add(js);

j.put("rows", ja);

System.out.println(j.toString());
Run Code Online (Sandbox Code Playgroud)

实际产量:

{"rows":[{"id":"2","data":"[{\"shakil\",\"29\",\"7676\"}]"}]}
Run Code Online (Sandbox Code Playgroud)

预期产量:

{"rows":[{"id":"2","data":["shakil", "29","7676"]}]};
Run Code Online (Sandbox Code Playgroud)

小智 22

s是一个String这是加引号时putJSONObject.您必须JSONArray为以下值创建另一个data:

// using http://jettison.codehaus.org/
JSONObject outerObject = new JSONObject();
JSONArray outerArray = new JSONArray();
JSONObject innerObject = new JSONObject();
JSONArray innerArray = new JSONArray();

innerArray.put("shakil");
innerArray.put("29");
innerArray.put("7676");

innerObject.put("id", "2");
innerObject.put("data", innerArray);

outerArray.put(innerObject);

outerObject.put("rows", outerArray);

System.out.println(outerObject.toString());
Run Code Online (Sandbox Code Playgroud)

结果:

{
    "rows": [
        {
            "id": "2",
            "data": [
                "shakil",
                "29",
                "7676"
            ]
        }
    ]    
}
Run Code Online (Sandbox Code Playgroud)


Dim*_*ims 10

String[] s = new String[] {"shakil", "29" , "7676"};
Run Code Online (Sandbox Code Playgroud)

代替

String s = "[{\"shakil\",\"29\",\"7676\"}]";
Run Code Online (Sandbox Code Playgroud)