0

org.json を使用して Java で JSON を解析することに行き詰まっています。私のJSONは次のようになります

[{"id" : "1",
  "type" : "City",
  "description" : [ "short_description" : "some data",
                    "long_description" : "some data",
                    "postal_code" : "49045",
                    "population" : "900000",
                  ],
     }
 ],

たとえば、 long_description などのタグの説明の要素を解析するにはどうすればよいですか?

4

4 に答える 4

1

json-libを使用すると、既存のプロジェクトにライブラリとして簡単に追加でき、次のように実行できます。

データ (JSON):

{'foo':'bar', 'coolness':2.0, 'altitude':39000, 'pilot':{'firstName':'Buzz','lastName':'Aldrin'}, 'mission':'アポロ 11 '}

データを解析するコード:

import java.io.InputStream;

import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;

import org.apache.commons.io.IOUtils;

public class JsonParsing {

    public static void main(String[] args) throws Exception {
        InputStream is = 
                JsonParsing.class.getResourceAsStream( "sample-json.txt");
        String jsonTxt = IOUtils.toString( is );

        JSONObject json = (JSONObject) JSONSerializer.toJSON( jsonTxt );        
        double coolness = json.getDouble( "coolness" );
        int altitude = json.getInt( "altitude" );
        JSONObject pilot = json.getJSONObject("pilot");
        String firstName = pilot.getString("firstName");
        String lastName = pilot.getString("lastName");

        System.out.println( "Coolness: " + coolness );
        System.out.println( "Altitude: " + altitude );
        System.out.println( "Pilot: " + lastName );
    }
}

参考文献:

于 2012-09-18T09:22:51.740 に答える
0

あなたはライブラリなしでそれを行うことができます -

try  {
    JSONTokener tokener = new JSONTokener(yourString);
    JSONObject jsonObj = (JSONObject) tokener.nextValue();
    String output = jsonObj.getString("streamUrl");
} catch (JSONException e) {
    Log.v("Logtag", "Problem in decoding json");
    e.printStackTrace();
}
于 2012-09-18T09:29:01.673 に答える
0
JSONArray values = new JSONArray(yourstring);
for(int i = 0 ; i < values.length(); i++){
    JSONObject object= values.get(i);
    JSONArray desc = object.getJSONArray("description");

}
于 2012-09-18T09:23:08.233 に答える