我需要用键和值制作json对象,其中value是值数组。我该怎么办?
{"propName" : "favouriteObjectsIds",
"value": [
"5c93f4cc3a6565000483248d",
"5c93f7843a6565000483248e"
]
}
我已经尝试过
public void add(String propertyName, String[] values){
JsonArray array1 = new JsonArray();
for(int i = 0; i < values.length; i++){
array.add(values[i]);
}
JsonObject json = new JsonObject();
json.addProperty("propName", propertyName);
json.addProperty("value" ,array.toString());
}
但是array.toString()给我这样的输出
{"propName":"favouriteObjectsIds",
"value":"[\"5c93f4cc3a6565000483248d\",\"5c9b82ad24b33b0004227322\"]"}
答案 0 :(得分:1)
对于JsonElements,您应该使用.addProperty
而不是public void add(String propertyName, String[] values){
JsonArray array = new JsonArray();
for(int i = 0; i < values.length; i++){
array.add(values[i]);
}
JsonObject json = new JsonObject();
json.addProperty("propName", propertyName);
json.add("value" ,array);
}
def evenNum(num):
if num % 2 == 0 :
return True
答案 1 :(得分:0)
您可以像这样用ArrayList构建json:
public void add(String propertyName,ArrayList<String> list){
Map map = new LinkedHashMap();
map.put("propName", propertyName);
map.put("value", list);
JSONObject jObject = new JSONObject(map);
// convert JSONObject to JSON to String
String json = jObject.toString();
}
答案 2 :(得分:0)
以上所有示例创建两个属性,每个属性都有一个键(名称)和一个值。第一个属性键为“ propName”,其值为“ favouriteObjectsIds”,第二个属性键为“ value”,其值为“ [[5c93f4cc3a6565000483248d”,“ 5c93f7843a6565000483248e”]“
我怀疑您更愿意这样做:
{"favouriteObjectsIds": [
"5c93f4cc3a6565000483248d",
"5c93f7843a6565000483248e"
]
}
如果是这样,您可以按照以下方式进行操作:
String myJson = "{\"favouriteObjectsIds\":[\"5c93f4cc3a6565000483248d\",\"5c93f7843a6565000483248e\"]}";
JSONObject jObject = new JSONObject(myJson );
JSONArray jArray = jObject.getJSONArray("favouriteObjectsIds");