如何从JSON文件中解析?

时间:2014-02-20 06:44:59

标签: android json parsing

我在JSON文件中有以下对象。我必须解析它并将其存储在一个文件中。执行此操作的Android代码是什么?

 {
  "result":"ok",
  "numbers":
           [
            {
              "First":"first",
              "Second":"second",
              "Third":"third",
              "Fourth":"fourth",
              "Fifth":"fifth"
            }
           ]
 }

有人发现我离开了吗?我非常感谢你的工作。

4 个答案:

答案 0 :(得分:2)

{ -> json object 
  "result":"ok", 
  "numbers":[-> json array 
            {

这样做

JSONObject jobject=new JSONObject(jsonString);
JSONArray jarray=Jobject.getJSONArray("numbers");
String result=jobject.getJSONObject("result");
for(int i=0;jarray.length();i++){
      String first= jarray.getJSONObject(i).getString("First");
      String Second= jarray.getJSONObject(i).getString("Second");
}

答案 1 :(得分:2)

 { // json object node
  "result":"ok", 
  "numbers":[// json array numbers
            {
              "First":"first",

解析

JSONObject jb = new JSONObject("your json");
String result = (JSONArray)jb.getString("result");
JSONArray jr = (JSONArray)jb.getJSONArray("numbers");
JSONObject jb1= (JSONObject) jr.getJSONObject(0); 
String first = jb1.getString("First");
// similarly for second third and fourth 

解析后,您可以将结果写入文件。

编辑:

注意:网络操作必须在后台线程中完成。使用Asynctask

try
{
HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
HttpGet request = new HttpGet("your json url ");  
HttpResponse response = httpclient.execute(request);
HttpEntity resEntity = response.getEntity();
String _response=EntityUtils.toString(resEntity); 
}catch(Exception e)
{
      e.printStackTrace();
}

现在使用_response JSONObject jb = new JSONObject("_response);。休息都是一样的

答案 2 :(得分:0)

尝试使用以下

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

JSONObject json = null;
JSONArray jsonArray = null;
String data = null;

json = new JSONObject(response);
data = json.getString("numbers");
jsonArray = new JSONArray(data);

for (int i = 0; i < jsonArray.length(); i++) {
String str =jsonArray.getJSONObject(i).toString();
}

答案 3 :(得分:0)

始终记住{表示对象和[表示数组,以便您可以在给出

中继续执行以下代码
JSONObject firstjobject=new JSONObject(jsonString);
JSONArray firstjarray=firstjobject.getJSONArray("numbers");
String result=firstjobject.getJSONObject("result");
for(int i=0;firstjarray.length();i++){
      String first= firstjarray.getJSONObject(i).getString("First");
      String Second= firstjarray.getJSONObject(i).getString("Second");
}

这里的数字是一个数组,第一个,第二个等是相对数据值的关键