Java에서 JSONObject를 사용하여 다음 구조에 대해 중첩된 JSON 개체를 생성하시겠습니까?
JSONObject와 JSONArray를 사용하여 java의 구조를 따르는 것과 유사한 JSON 오브젝트를 만들고 싶습니다.
스택 오버플로의 다양한 투고를 검토했습니다만, JSONAray에서는 특정할 수 없는 푸시, 풋 등의 방법을 제안하고 있습니다.제발 도와주세요.
{
"name": "sample",
"def": [
{
"setId": 1,
"setDef": [
{
"name": "ABC",
"type": "STRING"
},
{
"name": "XYZ",
"type": "STRING"
}
]
},
{
"setId": 2,
"setDef": [
{
"name": "abc",
"type": "STRING"
},
{
"name": "xyz",
"type": "STRING"
}
]
}
]
}
Import와 함께org.json.JSONArray
그리고.org.json.JSONObject
JSONObject object = new JSONObject();
object.put("name", "sample");
JSONArray array = new JSONArray();
JSONObject arrayElementOne = new JSONObject();
arrayElementOne.put("setId", 1);
JSONArray arrayElementOneArray = new JSONArray();
JSONObject arrayElementOneArrayElementOne = new JSONObject();
arrayElementOneArrayElementOne.put("name", "ABC");
arrayElementOneArrayElementOne.put("type", "STRING");
JSONObject arrayElementOneArrayElementTwo = new JSONObject();
arrayElementOneArrayElementTwo.put("name", "XYZ");
arrayElementOneArrayElementTwo.put("type", "STRING");
arrayElementOneArray.put(arrayElementOneArrayElementOne);
arrayElementOneArray.put(arrayElementOneArrayElementTwo);
arrayElementOne.put("setDef", arrayElementOneArray);
array.put(arrayElementOne);
object.put("def", array);
명확성을 위해 첫 번째 배열의 두 번째 요소는 포함하지 않았습니다.요점을 파악하셨기를 바랍니다.
편집:
이전 답변은 다음을 사용하고 있다고 가정하는 것이었습니다.org.json.JSONObject
그리고.org.json.JSONArray
.
위해서net.sf.json.JSONObject
그리고.net.sf.json.JSONArray
:
JSONObject object = new JSONObject();
object.element("name", "sample");
JSONArray array = new JSONArray();
JSONObject arrayElementOne = new JSONObject();
arrayElementOne.element("setId", 1);
JSONArray arrayElementOneArray = new JSONArray();
JSONObject arrayElementOneArrayElementOne = new JSONObject();
arrayElementOneArrayElementOne.element("name", "ABC");
arrayElementOneArrayElementOne.element("type", "STRING");
JSONObject arrayElementOneArrayElementTwo = new JSONObject();
arrayElementOneArrayElementTwo.element("name", "XYZ");
arrayElementOneArrayElementTwo.element("type", "STRING");
arrayElementOneArray.add(arrayElementOneArrayElementOne);
arrayElementOneArray.add(arrayElementOneArrayElementTwo);
arrayElementOne.element("setDef", arrayElementOneArray);
object.element("def", array);
기본적으로 JSONObject의 'element'에 대한 'put' 메서드와 JSONArray의 'add'에 대한 'put' 메서드를 대체하는 것은 동일합니다.
여기 대략적인 예가 있다.당신은 다듬을 수 있을 거예요.(이 Java "http://http://docs.oracle.com/javaee/7/tutorial/doc/jsonp.htm#GLRBB 에 관심이 있을 수 있습니다.
(이 예에서는 Java EE에 포함된 JSON 레퍼런스 구현을 사용하고 있습니다(여기에서 입수할 수 있습니다.https://java.net/projects/jsonp/downloads/directory/ri)
package com.demo;
import java.io.FileWriter;
import java.io.IOException;
import javax.json.Json;
import javax.json.stream.JsonGenerator;
public class JSONExample {
public static void main(String[] args) {
FileWriter writer = null;
try {
writer = new FileWriter("C:\\Users\\Joseph White\\Downloads\\jsontext.txt");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JsonGenerator gen = Json.createGenerator(writer);
gen.writeStartObject().write("name", "sample")
.writeStartArray("def")
.writeStartObject().write("setId", 1)
.writeStartArray("setDef")
.writeStartObject().write("name", "ABC").write("type", "STRING")
.writeEnd()
.writeStartObject().write("name", "XYZ").write("type", "STRING")
.writeEnd()
.writeEnd()
.writeEnd()
.writeStartObject().write("setId", 2)
.writeStartArray("setDef")
.writeStartObject().write("name", "abc").write("type", "STRING")
.writeEnd()
.writeStartObject().write("name", "xyz").write("type", "STRING")
.writeEnd()
.writeEnd()
.writeEnd()
.writeEnd()
.writeEnd();
gen.close();
}
}
언급URL : https://stackoverflow.com/questions/22042638/creating-nested-json-object-for-the-following-structure-in-java-using-jsonobject
'IT' 카테고리의 다른 글
반응 성분과 반응 요소의 차이 (0) | 2023.03.04 |
---|---|
use Selector의 파괴와 여러 콜의 파괴 (0) | 2023.03.04 |
Angular 속도를 높이는 방법JS 어플리케이션? (0) | 2023.02.27 |
JSON.parse 예기치 않은 토큰 (0) | 2023.02.27 |
Woocommerce 변동 상품 가격 획득 (0) | 2023.02.27 |