반응형
GSON을 사용하여 목록을 JSON 개체로 변환하는 방법
GSON을 사용하여 JSON 오브젝트로 변환해야 하는 목록이 있습니다.JSON 오브젝트에 JSON 어레이가 포함되어 있습니다.
public class DataResponse {
private List<ClientResponse> apps;
// getters and setters
public static class ClientResponse {
private double mean;
private double deviation;
private int code;
private String pack;
private int version;
// getters and setters
}
}
아래는 리스트를 JSON Array를 탑재한 JSON 오브젝트로 변환해야 하는 코드입니다.
public void marshal(Object response) {
List<DataResponse.ClientResponse> clientResponse = ((DataResponse) response).getClientResponse();
// now how do I convert clientResponse list to JSON Object which has JSON Array in it using GSON?
// String jsonObject = ??
}
현재 리스트에는 2개의 아이템밖에 없습니다.이렇게 JSON 오브젝트가 필요합니다.
{
"apps":[
{
"mean":1.2,
"deviation":1.3
"code":100,
"pack":"hello",
"version":1
},
{
"mean":1.5,
"deviation":1.1
"code":200,
"pack":"world",
"version":2
}
]
}
어떻게 하면 좋을까요?
목록을 실제로 json 문자열로 변환하는 방법에 대한 Google gson 문서의 샘플이 있습니다.
Type listType = new TypeToken<List<String>>() {}.getType();
List<String> target = new LinkedList<String>();
target.add("blah");
Gson gson = new Gson();
String json = gson.toJson(target, listType);
List<String> target2 = gson.fromJson(json, listType);
리스트의 타입을 설정할 필요가 있습니다.toJson
method 및 list 객체를 전달하여 json 문자열로 변환하거나 그 반대로 변환합니다.
한다면response
당신의 안에서marshal
method는DataResponse
그게 바로 당신이 연재해야 할 내용입니다.
Gson gson = new Gson();
gson.toJson(response);
그러면 원하는 JSON 출력을 얻을 수 있습니다.
json도 포맷으로 가져오고 싶다고 가정합니다.
{
"apps": [
{
"mean": 1.2,
"deviation": 1.3,
"code": 100,
"pack": "hello",
"version": 1
},
{
"mean": 1.5,
"deviation": 1.1,
"code": 200,
"pack": "world",
"version": 2
}
]
}
대신
{"apps":[{"mean":1.2,"deviation":1.3,"code":100,"pack":"hello","version":1},{"mean":1.5,"deviation":1.1,"code":200,"pack":"world","version":2}]}
예쁜 인쇄를 사용할 수 있습니다.그러기 위해서는
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(dataResponse);
컬렉션을 어레이로 변환해 주세요.
Gson().toJson(objectsList.toTypedArray(), Array<CustomObject>::class.java)
먼저 myObject 배열을 만든 후 목록으로 변환하여 다른 회피책을 사용할 수도 있습니다.
final Optional<List<MyObject>> sortInput = Optional.ofNullable(jsonArgument)
.map(jsonArgument -> GSON.toJson(jsonArgument, ArrayList.class))
.map(gson -> GSON.fromJson(gson, MyObject[].class))
.map(myObjectArray -> Arrays.asList(myObjectArray));
베니피트:
- 여기에서는 반사를 사용하지 않습니다.:)
언급URL : https://stackoverflow.com/questions/27893342/how-to-convert-list-to-a-json-object-using-gson
반응형
'source' 카테고리의 다른 글
Angularjs 필터가 null이 아닙니다. (0) | 2023.03.22 |
---|---|
Jackson을 사용하여 오버로드된 메서드를 사용하여 JSON을 개체로 역직렬화 (0) | 2023.03.22 |
게시물의 URL 접두사 WordPress (0) | 2023.03.22 |
htaccess의 Apache Rewrite Rule - 루트가 끊어졌습니다. (0) | 2023.03.22 |
WordPress의 CSS 배경 이미지 (0) | 2023.03.22 |