2014-10-09 91 views
1

我有JSONArray与其中的不同JSONObjects。当我的方法被调用的时候,首先会创建JSONObject。当再次调用该方法时,将在前一个JSONObject旁边调用另一个JSONObject。现在我想插入最新的JSONObject的元素。问题是JSONObject被插入到JSONArray中的任何地方。那么如何获取插入的最新JSONObject的元素。 这里是我的JSONArray从JSONArray获取JSONobject在android

[ 
    { 
     "letter": "E", 
     "col": 2, 
     "row": 5, 
     "badge": "1" 
    }, 
    { 
     "letter": "D", 
     "col": 2, 
     "row": 6, 
     "badge": "2" 
    }, 
    { 
     "letter": "Y", 
     "col": 2, 
     "row": 8, 
     "badge": "3" 
    } 
] 

在上面JSONArray我想针对Android创建的最新的JSONObject信。我在代码中做了以下事情,但由于JSONObject放在任何地方,我没有得到正确的字母。

JSONArray jarry1 = new JSONArray(allwordsss); 
for (int i = 0; i < jarry1.length(); i++) { 
    String all = jarry1.getString(i).toString(); 
    Log.e("TAG2", "All" + all); 
    JSONObject jobjjjj = new JSONObject(all); 
    letter = jobjjjj.getString("letter"); 
} 
Log.i("TAG2", "letter" + letter); 
+0

请扩展您的问题,包括您到目前为止尝试过的内容,以及您正在使用哪个json库。 – ScouseChris 2014-10-09 11:16:25

+0

我已更新我的帖子请看看它..而我从服务器获取数据.. – 2014-10-09 11:20:19

+0

你不知道哪个jsonobject最后放在数组中,除非你将它存储在某个地方。并请澄清你在说什么。对我而言,你没有多大意义。 – stealthjong 2014-10-09 11:25:49

回答

1

访问到你的数组中的最新字母:

String letter; 
try { 
    JSONArray array = new JSONArray(json); 
    JSONObject object = array.getJSONObject(array.length()-1); 

    if (object.has("letter")) // according to defensive programming rules 
      letter = object.getString("letter"); 
catch { 
    letter = "error..."; 
} 
+0

我只是不知道JSONObject插入的位置。所以我不能使用它。 – 2014-10-09 11:28:01

+0

您可以在服务器端处理订单。添加计数器或'CreatedDate'到每个元素 – 2014-10-09 11:35:47

1

尝试下面的代码,你可以得到特定的JSON对象是否可以响应JSON或没有。如果是的话就拿到它。

try{ 
    JSONArray results = jsonObject.getJSONArray(allwordsss); 
      for (int i = 0; i < results.length(); i++) { 
       JSONObject jsonResult = results.getJSONObject(i); 

       // To check whether such key available or not, otherwise will through exception 
       if (jsonResult.has("letter")) 
        String letter = jsonResult .getString("letter"); 

      } 
}catch(JSONException e){ 
} 
+0

我只是不知道JSONObject插入的位置。所以我不能使用它。 – 2014-10-09 12:23:10

2

试试这个会帮助你。

try{ 
    JSONArray jarry1 = new JSONArray(allwordsss); 
    JSONObject jobject 
    for(int i=0; i<jarry1.size(); i++) 
    { 
     jobject = jarry1.getJSONObject(i) 
     String letter = jobject.get("letter") 
     Log.i("TAG", "letter" + letter); 
    } 
    catch(JSONException e){ 
} 
+0

我只是不知道JSONObject插入的位置。所以我不能使用这个 – 2014-10-09 12:22:26