Android(Java)将JSONArray转换为JSONObject

时间:2014-12-18 22:06:59

标签: java android arrays jsonobject

我有一个JSONObject:

try {
    JSONObject myJsonObject = new JSONObject("{ \"options\": [\"Oui\", \"Non\"] }");
    JSONArray myJsonArray = myJsonObject.getJSONArray("options");
} catch (Exception e) {
    e.printStackTrace();
}

myJsonArray.toString()包含:

["Yes", "No"]

我需要将它转换为像这样的JSONObject:

{ "0": "Yes", "1": "No" }

还有:

{ "Yes": "Yes", "No": "No" }

知道我该怎么做吗?

2 个答案:

答案 0 :(得分:1)

当然答案是:

JSONObject myJsonObject = new JSONObject("{ \"options\": [\"Oui\", \"Non\"] }");
JSONArray myJsonArray = myJsonObject.getJSONArray("options");

JSONObject myJsonObject2 = new JSONObject();
for(int i = 0; i < myJsonArray.length(); i++){
    String a = myJsonArray.getString(i);
    myJsonObject2.put(a, a);
}

抱歉,我感到困惑。

答案 1 :(得分:1)

有一个方法toJSONObject用于从JSONArray创建新的JSONObject。 试试这个:

try {
    JSONObject myJsonObject = new JSONObject("{ \"options\": [\"Oui\", \"Non\"] }");
    JSONArray myJsonArray = myJsonObject.getJSONArray("options");

    // creates a new JSON Object with the given keys
    JSONObject result = myJsonArray.toJSONObject(myJsonArray);
} catch (Exception e) {
    e.printStackTrace();
}