【问题标题】:Get JSONobject from JSONArray in android从android中的JSONArray获取JSONobject
【发布时间】:2014-10-09 11:10:36
【问题描述】:

我有 JSONArray,里面有不同的 JSONObjects。那时将调用我的方法时,将创建第一个 JSONObject。当再次调用该方法时,将在前一个 JSONObject 旁边调用另一个 JSONObject。现在我想要插入最新的 JSONObject 中的元素。问题是 JSONObject 被插入到 JSONArray 中的任何位置。那么我怎样才能插入最新的 JSONObject 元素。 这是我的 JSONArray

[
    {
        "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);

【问题讨论】:

  • 请扩展您的问题以包括您迄今为止尝试过的内容,以及您正在使用的任何 json 库。
  • 我已经更新了我的帖子,请看它..我正在从服务器获取数据..
  • 你无法知道最后将哪个jsonobject放入数组中,除非你将它存储在某个地方。请澄清你在说什么。对我来说,你没有那么大的意义。
  • A JSONArray 是有序的值(对象)序列,因此取决于您的代码如何构建该数组。
  • @stealthjong-是的,我不知道 JSONObject 插入的位置。因此,如果在 JSONArray 中的某处创建了最新的 JSONObject,那么如何从最新的 JSONObject 中获取字母。

标签: android json arrays jsonobject


【解决方案1】:

试试这个对你有帮助。

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){
 }

【讨论】:

  • 我根本不知道 JSONObject 插入的位置。所以我不能使用这个
【解决方案2】:

访问数组中的最新字母:

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...";
}

【讨论】:

  • 我根本不知道 JSONObject 插入的位置。所以我不能使用它。
  • 您可以在服务器端处理订单。为每个元素添加计数器或“CreatedDate”
【解决方案3】:

试试下面的代码,你可以得到响应 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){
 }

【讨论】:

  • 我根本不知道 JSONObject 插入的位置。所以我不能使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-29
  • 2016-05-24
  • 1970-01-01
相关资源
最近更新 更多