2

私はURLからこのJsonを持っています:

{
  "type":"FeatureCollection",
  "features":
    [
      {
        "type":"Feature",
        "properties":
          [
            {
              "type":"colliers",
              "thumb":"upload\/estate\/135\/thumb_1. Prologis Park Wroclaw I.jpg",
              "name_pl":"Prologis Park Wroc\u0142aw I",
              "name_en":"Prologis Park Wroc\u0142aw I",
              "completearea":"167 000",
              "completeareaunit":"m2",
              "workingarea":"",
              "workingareaunit":"m2",
              "id_type":"3",
              "id":"135",
              "lon":16.939201369628,
              "lat":51.037378299619,
              "images":["public\/upload\/estate\/135\/1. Prologis Park Wroclaw I.jpg"]
            }
          ],
        "geometry":
          {
            "type":"Point",
            "coordinates":[16.939201369628,51.037378299619]
          },
        "crs":
          {
            "type":"name",
            "properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}
          }
        },

      {
        "type":"Feature",
        "properties":
          [
            {
              "type":"colliers",
              "thumb":"upload\/estate\/136\/thumb_2. Prologis Park Wroclaw III.jpg",
              "name_pl":"Prologis Park Wroc\u0142aw III",
              "name_en":"Prologis Park Wroclaw III",
              "completearea":"129 500",
              "completeareaunit":"m2",
              "workingarea":"",
              "workingareaunit":"m2",
              "id_type":"3",
              "id":"136",
              "lon":16.928386702881,
              "lat":51.105440250407,
              "images":
                [
                  "public\/upload\/estate\/136\/2. Prologis Park Wroclaw III.jpg"
                ]
            }
          ],
        "geometry":
          {
            "type":"Point",
            "coordinates":[16.928386702881,51.105440250407]
          },
        "crs":
          {
            "type":"name",
            "properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}
          }
        },
        .................... more more more...

リスト内のプロパティを手に入れる必要があります。

つまり、機能->プロパティ-> name_en(そのようなオブジェクトのリスト)になります

私はこれを試してみます:

JSONParser parser = new JSONParser();
Object obj = parser.parse(Json_str);    
JSONObject jsonObject = (JSONObject) obj;
JSONArray jsonFeaturesArr = new JSONArray(jsonObject.getJSONArray("features")); 

最初のJsonArrayを作成するためですが、それもできません。エラーが発生します:メソッドgetJSONArray(String)がタイプJSONObjectに対して未定義です

(「getJSONObject」についても同じエラーが発生します)。Sthが欠落している必要があります、私はjava/android初心者です。

エラーを解決した場合、どうすればJsonを深く理解できますか?

ヘルプを事前に感謝します。

4

3 に答える 3

5

次のようにしてみてください:

JSONObject jSONObject = new JSONObject(jsonString);
String str_type=jSONObject.getString("type");

// using JSONArray
JSONArray featuresArr = jSONObject.getJSONArray("features");
  for (int i=0; i<featuresArr.length; i++){
    JSONObject anotherjsonObject = featuresArr.getJSONObject(i);
    //access the fields of that json object
    String str_type_one=anotherjsonObject.getString("type");
   JSONArray featuresArr_properties = anotherjsonObject.getJSONArray("properties");

   JSONObject propertiesjsonObject = featuresArr_properties.getJSONObject(0);
   String str_type=propertiesjsonObject.getString("type");
   String str_type=propertiesjsonObject.getString("thumb");
   String str_type=propertiesjsonObject.getString("name_pl");
   String str_type=propertiesjsonObject.getString("name_en");
 ////parse all items ...........
  }
于 2012-11-07T12:22:10.687 に答える
2

XMLのようには見えませんが、JSONのように見えます。

その文字列でJSONObjectを初期化する必要があります。

 JSONObject obj = new JSONObject(str);

次に、特定のフィールドにアクセスするには、そのフィールドが存在するかどうかを確認してから、そのフィールドからデータを取得しようとします。たとえば、JSONArray呼び出しを取得します。

if (obj.has("features")&&!obj.isNull("features")){
  JSONArray array = obj.getJSONArray("");
  for (int i=0; i<array.length; i++){
    JSONObject anotherObject = array.getJSONObject(i);
    //access the fields of that json object
  }
}
于 2012-11-07T12:16:36.010 に答える
0

実行可能なコード:

import org.json.JSONArray;
import org.json.JSONObject;

    try {

        JSONObject jSONObject = new JSONObject(Json_str);
        String str_type=jSONObject.getString("type");

        JSONArray featuresArr = jSONObject.getJSONArray("features");
          for (int i=0; i<featuresArr.length(); i++)
          {
            JSONObject anotherjsonObject = featuresArr.getJSONObject(i);
            String str_type_one=anotherjsonObject.getString("type");
           JSONArray featuresArr_properties = anotherjsonObject.getJSONArray("properties");

           JSONObject propertiesjsonObject = featuresArr_properties.getJSONObject(0);
           str_type=propertiesjsonObject.getString("name_pl");
          }         

    } catch (Exception e) {
        e.printStackTrace();
        Log.i("Jsor parser error","Oh no!"  + e);
    }   
于 2012-11-07T13:42:57.013 に答える