当前位置: 首页 > 面试题库 >

解析json数组android

颜华池
2023-03-14
问题内容

嗨,我正在尝试从该 URL 解析json数组。json数组如下所示。

    [
   {
      "id":1,
      "introtext":"\u041b\u0438\u043c\u0443\u0437\u0438\u043d\u0430\u0442\u0430 \u0435 \u043e\u0434 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0432\u043e \u0431\u0435\u043b\u0430 \u0431\u043e\u0458\u0430 \u0434\u043e\u043b\u0433\u0430 \u043e\u043a\u043e\u043b\u0443 8,5 \u043c\u0435\u0442\u0440\u0438. \u041e\u043f\u0440\u0435\u043c\u0435\u043d\u0430 \u0435 \u0441\u043e \u043a\u043b\u0438\u043c\u0430 \u0440\u0435\u0434, \u0422\u0412, \u0414\u0412\u0414 \u0438 \u0431\u0430\u0440. \u041c\u043e\u0436\u0430\u0442 \u0434\u0430 \u0441\u0435 \u0432\u043e\u0437\u0430\u0442 \u0434\u043e 9 \u043b\u0438\u0446\u0430. \u0421\u0435 \u0438\u0437\u043d\u0430\u0458\u043c\u0443\u0432\u0430 \u0441\u043e \u043d\u0430\u0448 \u0448\u043e\u0444\u0435\u0440.\n{AdmirorGallery}..\/katalog\/prevoz\/limo-servis-jasmina\/linkoln\/{\/AdmirorGallery}\n\u00a0",
      "image":"http:\/\/zasvadba.mk\/media\/k2\/items\/cache\/787ae9ec9023a82f5aa7e4c1a64f73cb_S.jpg",
      "title":"\u041b\u0438\u043c\u0443\u0437\u0438\u043d\u0430 \u041b\u0438\u043d\u043a\u043e\u043b\u043d",
      "catid":"20",
      "alias":"\u043b\u0438\u043c\u0443\u0437\u0438\u043d\u0430-\u043b\u0438\u043d\u043a\u043e\u043b\u043d-\u043b\u0438\u043c\u043e-\u0441\u0435\u0440\u0432\u0438\u0441-\u0458\u0430\u0441\u043c\u0438\u043d\u0430"
   }
]

我在我的java类中这样做

try {
            JSONfunctions j=new JSONfunctions();
            JSONObject json = j.getJSONfromURL(url);
            Log.i("log_tag", json.toString()); 
            String jsonvalues =  json.getString("id");

            Log.i("DARE", jsonvalues);  
        }
        catch (Exception ex)
        {
            Log.e("log_tag", "Error getJSONfromURL "+ex.toString());           
        }
    }

但这不起作用,有人可以帮我解析我的json数组吗?


问题答案:

您将需要根据您在此处发布的用于解析为Json的字符串在当前代码中进行两次更改:

首先:getJSONfromURL方法的返回类型更改为JSONArrayJSONArray从中返回,而不是JSONObject
例如:

public JSONArray getJSONfromURL(String url){
    String str_response="response from server";

    // convert response to JSONArray
   JSONArray json_Array=new JSONArray(str_response);

   return json_Array; //<< retun jsonArray
}

第二: 更改代码以获取价值JsonArray

try {
    JSONfunctions j=new JSONfunctions();
    JSONArray jArray = j.getJSONfromURL(url);
    Log.i("log_tag", jArray.toString());

     for(int i=0;i<jArray.length();i++){
      JSONObject json_data = jArray.getJSONObject(i);
      String jsonvalues =  json_data.getString("id");
      // .. get all value here
      Log.i("DARE", jsonvalues);  
   }
  }
catch (Exception ex)
   {
    Log.e("log_tag", "Error getJSONfromURL "+ex.toString());           
  }


 类似资料:
  • 问题内容: 如何解析JSON ARRAY以获取没有[]和“”的数据 这是json 我的代码: 输出:[“ 23,Damansara-蒲种高速公路(Bandar Puchong Jaya)”,“ 47100 Puchong Batu Dua Belas,雪兰莪,”马来西亚“] 我只想要数据。如: 23,Damansara-Puchong Hwy(Bandar Puchong Jaya),47100

  • 问题内容: 我有类似以下的输出: 我想获取每个城市的名称,该怎么办? 编辑: 上面的方法似乎无效,没有输出任何值。 问题答案: 也会在提取后为您解析JSON,因此从那时起,您将使用简单的Javascript数组(在JSON中标记为数组)。该文档还包含有关如何处理获取的数据的示例。 您可以使用for循环获取数组中的所有值: 检查您的控制台以查看输出(Chrome,Firefox / Firebug

  • 问题内容: 我正在尝试解析以下JSON 这是我从Web服务获取的JSON,并且我正在使用以下代码对其进行解析: 我收到以下错误 该操作无法完成。(NSURLErrorDomain错误-1005。)致命错误:在展开可选值时意外发现nil 我该如何解决? 问题答案: 您的网址返回了以下JSON- 最外面的方括号表示根对象是一个数组,因此尝试将JSON解析的结果强制转换为NSDictionary会导致问

  • 问题内容: 我在解析从javascript获取的JSON时遇到问题。JSON的格式是这样的: 到目前为止,我已经能够做到这一点: 但是我现在还需要用这些位置创建一个类。我一直在上课,因为我先尝试打印输出,但是我无法进一步细分它。我收到此错误消息: java.lang.IllegalStateException:这不是JSON数组。 我的代码是这样的: 我也尝试过这种方式: 在这种情况下,我得到:

  • 问题内容: 我试图从JSON数组中获取每个JSON对象。我通过HTTP发布获得此数据。 我知道我的数据是什么样的: 我的示例代码和结构如下所示: 我不确定如何遍历JSON数组并获取JSON对象,然后仅使用JSON对象。 问题答案: 试试这个作为您的结构, 您的名称不正确,顶层名称也不正确。解码为a之后,您可以遍历切片以获取每个切片

  • 问题内容: 我在获取想要在JSON文件中的数据时遇到了一些麻烦。这是控制台输出的简化版本: 我正在尝试使用内置的JSON解析库来解析文件。这是我的方法中的解析器 : 我想将货币代码(如)与货币词典中包含的其他一些数据一起存储,但是现在我的应用崩溃了。错误代码: 似乎没有任何对象添加到 救命? 编辑:获取键以显示适当的数据填充其他字段显示: 问题答案: 您的数据不包含任何数组,而是所有字典,请尝试上