![](/img/trans.png)
[英]Java How to get collection(List) of specific values in JsonObject contains a JSONArray
[英]How to get size of list which contains JSONObject?
我在列表中有jsonobject,它是字符串類型,列表中包含兩個json對象,但是大小為4。
存儲在列表中的JSONObject
是-
[{"size":"S", "id":11}, {"size":"8", "id":19}]
List<String> myList = new ArrayList<>(Arrays.asList(cart.split(",")));
給上面的輸出,但myList.size()
給4。
首先,您必須映射到對象中,然后您將能夠獲取正確的對象計數,例如:
package com.ds;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
String cart = "[{\"size\":\"S\", \"id\":11}, {\"size\":\"8\", \"id\":19}]";
Type type = new TypeToken<ArrayList<CObject>>() {
}.getType();
ArrayList<CObject> cObjectList = (new Gson()).fromJson(cart, type);
System.out.println(cObjectList);
System.out.println(cObjectList.size());
}
public class CObject {
private String id;
private String size;
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return "CObject{" +
"id='" + id + '\'' +
", size='" + size + '\'' +
'}';
}
}
}
上面代碼的輸出是:
[CObject{id='11', size='S'}, CObject{id='19', size='8'}]
2
希望這對您有所幫助。
Use Object Mapper library.
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
您的String對象需要轉換為Java類對象,並使用該列表可以正確獲取列表的大小。
您的代碼在這里。
String cart = ...;
ObjectMapper mapper = new ObjectMapper();
List<ClassName> classObjects= null;
try {
classObjects= mapper.readValue(cart, new TypeReference<List<ClassName>>() {});
} catch (Exception e) {
throw new IndsolvException(ErrorFactory.INTERNAL_SERVER_ERROR, e.getMessage());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.