programing

문자열의 Gson 배열에서 Json Array로

linuxpc 2023. 2. 25. 19:50
반응형

문자열의 Gson 배열에서 Json Array로

Gson을 사용하고 있으며 문자열 값을 여러 개 추가하려고 합니다.JsonArray다음과 같습니다.

JsonArray jArray = new JsonArray();
jArray.add("value1");

문제는 add 메서드에는JsonElement.

현악기를 삽입하려고 했습니다.JsonElement하지만 소용없었어요

Gson을 사용하여 어떻게 합니까?

String 값을 포함하는 프리미티브를 생성하여 어레이에 추가할 수 있습니다.

JsonArray jArray = new JsonArray();
JsonPrimitive element = new JsonPrimitive("value1");
jArray.add(element);

네가 직접 만들어봐야 할 것 같아new JsonPrimitive("value1")그리고 그걸 더해요.javadoc 참조

Gson 라이브러리의 새로운 버전에 대해서는, 를 추가할 수 있습니다.Strings또한, 추가에 대한 지원도 확장되었습니다.Boolean,Character,Number등(자세한 내용은 이쪽 참조)

이제 이 기능을 사용할 수 있습니다.

JsonArray msisdnsArray = new JsonArray();
for (String msisdn : msisdns) {
    msisdnsArray.add(msisdn);
}

저도 이런 걸 원했어요

JsonObject jo = new JsonObject();
jo.addProperty("strings", new String[] { "value1", "value2" });

하지만 안타깝게도 GSON에서는 지원되지 않기 때문에 다음 도우미를 만들었습니다.

public static void Add(JsonObject jo, String property, String[] values) {
    JsonArray array = new JsonArray();
    for (String value : values) {
        array.add(new JsonPrimitive(value));
    }
    jo.add(property, array);
}

그런 다음 다음과 같이 사용합니다.

JsonObject jo = new JsonObject();
Add(jo, "strings", new String[] { "value1", "value2" });

보일라!

언급URL : https://stackoverflow.com/questions/10498000/gson-array-of-strings-to-jsonarray

반응형