如何使用字符串创建 JSON 对象?

我想使用 String 创建一个 JSON 对象。

例如: JSON {"test1":"value1","test2":{"id":0,"name":"testName"}}

为了创建上面的 JSON,我使用了。

String message;
JSONObject json = new JSONObject();


json.put("test1", "value1");


JSONObject jsonObj = new JSONObject();


jsonObj.put("id", 0);
jsonObj.put("name", "testName");
json.put("test2", jsonObj);


message = json.toString();
System.out.println(message);

I want to know how can I create a JSON which has JSON Array in it.

下面是示例 JSON。

{
"name": "student",
"stu": {
"id": 0,
"batch": "batch@"
},
"course": [
{
"information": "test",
"id": "3",
"name": "course1"
}
],
"studentAddress": [
{
"additionalinfo": "test info",
"Address": [
{
"H.No": "1243",
"Name": "Temp Address",
"locality": "Temp locality",
"id":33
},
{
"H.No": "1243",
"Name": "Temp Address",
"locality": "Temp locality",
"id":33
},
{
"H.No": "1243",
"Name": "Temp Address",
"locality": "Temp locality",
"id":36
}
],
"verified": true,
}
]
}

谢谢。

549374 次浏览

org.json.JSONArray可能是你想要的。

String message;
JSONObject json = new JSONObject();
json.put("name", "student");


JSONArray array = new JSONArray();
JSONObject item = new JSONObject();
item.put("information", "test");
item.put("id", 3);
item.put("name", "course1");
array.put(item);


json.put("course", array);


message = json.toString();


// message
// {"course":[{"id":3,"information":"test","name":"course1"}],"name":"student"}

与已被接受的答案所建议的相反,文档说,对于 JSONArray (),您必须使用 put(value),而不能使用 add(value)

https://developer.android.com/reference/org/json/JSONArray.html#put(java.lang.Object)

(Android API 19-27. Kotlin 1.2.50)

If you use the gson.JsonObject you can have something like that:

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;


String jsonString = "{'test1':'value1','test2':{'id':0,'name':'testName'}}"
JsonObject jsonObject = (JsonObject) jsonParser.parse(jsonString)

下划线-java 可以从对象创建 json。

import com.github.underscore.U;


String message = U.objectBuilder()
.add("course", U.arrayBuilder()
.add(U.objectBuilder()
.add("id", 3)
.add("information", "test")
.add("name", "course1")
))
.add("name", "student")
.toJson();
System.out.println(message);


// {
//   "course": [
//     {
//       "id": 3,
//       "information": "test",
//       "name": "course1"
//     }
//   ],
//   "name": "student"
// }
 String jsonString = "{'element1':'value1','element2':{'id':0,'name':'testName'}}";
JsonObject jsonObject = (JsonObject) JsonParser.parseString(jsonString);