0

javaを使用してjsonArrayにキーが存在するかどうかを確認できるかどうかを知りたいです。例:私がこのjson文字列を持っているとしましょう:

{'abc':'hello','xyz':[{'name':'Moses'}]}

この配列がTypeからjsnArrayに格納されていると仮定しましょうJSONArray。'abc'キーがjsnArrayに存在するかどうかを確認したいのですが、存在する場合は取得する必要があり、そうでない場合は取得するtrue必要がありますfalse('abc'の場合はtrueを取得する必要があります)。Thnkas

4

4 に答える 4

2

あなたが投稿したのはJSONObject、の中にありJSONArrayます。この例にある唯一の配列は、'xyz'1つの要素のみを含む配列です。

JSONArrayの例は次のとおりです。

{
 'jArray':
          [
           {'hello':'world'},
           {'name':'Moses'},
           ...
           {'thisIs':'theLast'}
          ]
}

与えられたもの(上記の例と同様の状況)に含まJSONArrayれる呼び出されたが、次の関数を使用してキー「hello」を含むかどうかをテストできます。jArrayJSONObject

boolean containsKey(JSONObject myJsonObject, String key) {
    boolean containsHelloKey = false;
    try {
        JSONArray arr = myJsonObject.getJSONArray("jArray");
        for(int i=0; i<arr.length(); ++i) {
            if(arr.getJSONObject(i).get(key) != null) {
               containsHelloKey = true;
               break;
            }
        }
    } catch (JSONException e) {}

    return containsHelloKey;
}

そしてそれをこのように呼びます:

containsKey(myJsonObject, "hello");
于 2013-03-15T17:40:58.973 に答える
1

開き括弧と閉じ括弧があるため、正規表現の使用は機能しません。

JSONライブラリ(google-gsonなど)を使用して、JSON配列をJava配列に変換し、それを処理することができます。

于 2013-03-15T17:22:56.713 に答える
1

JSON配列にはキーと値のペアがありませんが、JSONオブジェクトにはあります。

jsonオブジェクトとして保存する場合は、次のメソッドを使用してキーを確認できます 。http://www.json.org/javadoc/org/json/JSONObject.html#has(java.lang.String)

于 2013-03-15T17:24:30.057 に答える
1

JavaでJSONスマートライブラリを使用してJSon文字列を解析する場合-

次のコードスニペットを使用してJSon配列を解析できます-

お気に入り -

JSONObject resultsJSONObject = (JSONObject) JSONValue.parse(<<Fetched JSon String>>);
JSONArray dataJSon = (JSONArray) resultsJSONObject.get("data");
JSONObject[] updates = dataJSon.toArray(new JSONObject[dataJSon.size()]);

for (JSONObject update : updates) {
            String message_id = (String) update.get("message_id");
            Integer author_id = (Integer) update.get("author_id");
            Integer createdTime = (Integer) update.get("created_time");
            //Do your own processing...
            //Here you can check null value or not..
}

詳細については、https://code.google.com/p/json-smart/をご覧ください。

これがお役に立てば幸いです...

于 2013-03-15T17:31:13.573 に答える