2

重複の可能性:
AndroidでJson配列を読み取る

JSONを使用して文字列からフィールド名を取得しようとしています。私はなんとか値を取得できましたが、フィールドを取得する方法。例:

文字列strjson:

{
    "IndustryDetails": [
        {
            "industryId": "1",
            "industryName": "Bird Nest",
            "productProfilePhoto": "",
            "industryIcon": "",
            "industryFields": {
                "items": [
                    {
                        "selectionItem": {
                            "Product Name": "燕碎 - YanShu                   ",
                            "Type": "盏片 - pcs",
                            "Grade": "碎片 - Broken",
                            "Farm": "DVS-EBN-000003",
                            "Made in": "Malaysia",
                            "Manufactured Date": "2012-08-09",
                            "Expiry Date": "2012-08-09",
                            "Export Permit": "1234",
                            "Import Permit": "9999"
                        }
                    }
                ]
            }
        }
    ]
}

これを行うことで、なんとか価値を得ることができました。

JSONObject json_data = new JSONObject(strjson);
JSONArray nameArray = json_data.names();
JSONArray valArray = json_data.toJSONArray(nameArray).getJSONArray(0);
Log.i(MainActivity.class.getName(),
                            "Number of entries " + valArray.length());
            for (int i = 0; i < valArray.length(); i++) {
                    JSONObject jsonObject = valArray.getJSONObject(i);
                    Log.i(MainActivity.class.getName(), " industryId = "+jsonObject.getString("industryId"));
                    Log.i(MainActivity.class.getName(), " industryName = "+jsonObject.getString("industryName"));
                    Log.i(MainActivity.class.getName(), " industryStatus = "+jsonObject.getString("productProfilePhoto"));
                    Log.i(MainActivity.class.getName(), " industryDescription = "+jsonObject.getString("industryIcon"));
                    Log.i(MainActivity.class.getName(), " industryIconFilepath = "+jsonObject.getString("industryFields"));                        
}

フィールド名を取得するにはどうすればよいですか。「製品名」、「タイプ」、「グレード」などが欲しいとしましょう

4

1 に答える 1

1

JSONArrayを返す.names()を使用して、すべての属性名を取得できます。配列を使用すると、特定の値の適切な属性名を取得できます(値が一意であると想定)。

于 2012-08-10T06:44:11.913 に答える