1

json に問題があります。サーバーから次の応答を受け取ります。

{"TESTS":true,"TESTS_VIEW":true,"ORDER":true,"PARAMETERS":true,"VIEW":true}

このデータを配列などに保存して、スキーマ: キー - 値を持たせるにはどうすればよいですか?

4

4 に答える 4

4

うーん、なぜこれが必要なのかよくわかりません。JSONObjectはまさにそれを提供します。JSONObject.get ()を見てください。

JSONObject json = new JSONObject(yourjsonstringfromserver);
boolean tests = json.getBoolean("TESTS");

それでも、すべての値を反復したい場合は、次のようにすることができます:

Map<String, Object> map = new HashMap<String, Object>();
Iterator<String> keys = json.keys();
for(String key : keys) {
    try {
        Object value = json.get(key);
        map.put(key, value);
    }
    catch (JSONException e) {
        // Something went wrong!
    }   
}
于 2013-06-17T10:27:56.550 に答える
2
JSONObject object = YourObjectHere;
Map<String,Boolean> dict = new HashMap<String,Boolean>();
Iterator it = object.keyes();

while( it.hasNext() ){
 String key = it.next();
 String value = object.get(key);
 dict.put( key, value );
}

解決策、多かれ少なかれ。// IDE でチェックせずに書かれているため、バグやエラーが含まれている可能性があります

于 2013-06-17T10:27:50.237 に答える
0
JSONObject json = new JSONObject(response);
json.getInt(keyA);
json.getString(keyB);

や。。など;

于 2013-06-17T10:30:42.980 に答える
0

この関数を httpResponse で使用すると、json 文字列になります。

public static YourModel parseJson(String httpResponse) {
    YourModel objObject = new YourModel();
    try {
        JSONArray jsonArrayData = new JSONArray(httpResponse);
        if (jsonArrayData.length() >= 1) {
            for (int i = 0; i < jsonArrayData.length(); i++) {
                JSONObject object = new JSONObject(jsonArrayData.get(0));
                // Setting value by key json
                objObject.setAtrr(object.getString("YourKey"));
            }
        }
    } catch (JSONException e) {
        e.printStackTrace();
        return null;
    }
    return objObject;
}
于 2013-06-17T10:34:57.493 に答える