0

私はJSON配列を持っています:

**
**
 {
      "Required" : true,
      "Validation" : {
        "MaxChars" : "40"
        "MinChars" : "10"
      }
  }
**
**

今のコード:

 JSONObject formField = formListAdapter.formArray.getJSONObject(i);

 if(formField.has("Required") && formField.getBoolean("Required") == true){

 }

前述のコードを使用して、JSONに「必須」という名前のフィールドがあるかどうか、およびこれが当てはまるかどうかを確認できます。しかし、検証に属性が含まれているかどうかをどのように確認できますか?名前とその値を確認するにはどうすればよいですか?つまり、MaxCharsまたはMinCharsの数を確認するにはどうすればよいですか?

4

4 に答える 4

2

JSONObject#getJSONObjectを使用してキーに対応するJSONObjectを取得してから、同じ操作を実行してキーから値を取得できます。

JSONObject validationObject = formField.getJSONObject("Validation");

またはあなたはより良い方法を使うことができます、ジャクソンを使う

于 2012-12-31T13:02:53.277 に答える
1
JSONObject validationObject = jsonObject.getJSONObject("Validation");
if (validationObject.has("MaxChars")) {
   int maxChars = validationObject.getInt("MaxChars");
   ...
}

// same for MinChars

の属性名を取得するにはvalidationObject、次を使用できます。

String[] names = JSONObject.getNames(validationObject);
于 2012-12-31T21:13:04.590 に答える
0

JSONObject.getJSONObject(String field)で、囲まれたJSONオブジェクトを取得する必要があります。

于 2012-12-31T12:53:15.797 に答える
0

「検証」オブジェクトの値を確認する必要があります。私はjson.orgを使ったことがありませんでしたが、そこから新しいJSONObjectを作成して、配列内のオブジェクトを操作するのと同じように値を読み取ることができると信じています。

于 2012-12-31T12:51:20.323 に答える