如何使用键和值创建json对象,其中value是数组

时间:2019-04-19 16:00:11

标签: java android arrays json

我需要用键和值制作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\"]"}

3 个答案:

答案 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");