非常に単純な質問で、多くの例がありますが、どれもうまくいきませんでした。
json 文字列の最も単純な形式を解析する必要があります。
{"id" : "5" , "name" : "John"}
これを配列、リスト、マップに変換して、このようなものを取得するにはどうすればよいですか?
myArray["id"] = 5
jsonを解析するには
JSONObject jsonobject = new JSONObject("mystring");
String id = jsonobject.getString("id");
String anem = jsonobject.getString("name");
パーサーを実行してデータを取得したら、それを配列またはリストに追加するか、Blackbelt が提案するような DataHolder を使用します
これを試して
JSONObject rawData = new JSONObject("{\"id\" : \"5\" , \"name\" : \"John\"}");
Iterator<String> keys = rawData.keys();
HashMap<String, String> mappedData = new HashMap<String, String>();
while (keys.hasNext())
{
String key = (String) keys.next();
if(rawData.getString(key) != null && rawData.getString(key)!= null)
{
mappedData.put(key, rawData.getString(key));
}
}
これで、次のようにデータを取得できます
mappedData.get("id"); // 5
mappedData.get("name") // John
//URL to get JSON Array
private static String url = "http://x.x.x.x/JSON/";
//JSON Node Names
private static final String TAG_USER = "user";
private static final String TAG_ID = "id";
private static final String TAG_NAME = "name";
JSONArray user = null;
// Creating new JSON Parser
JSONParser jParser = new JSONParser();
// Getting JSON from URL
JSONObject json = jParser.getJSONFromUrl(url);
try {
// Getting JSON Array
user = json.getJSONArray(TAG_USER);
JSONObject c = user.getJSONObject(0);
// Storing JSON item in a Variable
String id = c.getString(TAG_ID);
String name = c.getString(TAG_NAME);
}
catch(Exception e)
{ System.out.println(e.getMessage()); }