Hoe maak je een JSON-object met String?

Ik wil een JSON-object maken met String.

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

Om de bovenstaande JSON te maken, gebruik ik deze.

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

Ik wil weten hoe ik een JSON kan maken met een JSON-array erin.

Hieronder staat de voorbeeld-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,
    }
  ]
}

Bedankt.


Antwoord 1, autoriteit 100%

JSONArrayis misschien wat je zoekt.

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"}

Antwoord 2, Autoriteit 6%

In tegenstelling tot wat het geaccepteerde antwoord voorstelt, zegt de documentatie dat voor JSONARRAY () U moet gebruiken put(value)NO add(value).

https://developer.Android .com / referentie / org / json / jsonarray.html # put (java.lang.object)

(Android API 19-27. KOTLIN 1.2.50)


Antwoord 3

Als u de GSON.jsonobject gebruikt, kunt u zoiets hebben:

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)

Antwoord 4

underscore-java kan JSON Creëer van een object.

   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"
// }

Other episodes