在Java中读取特定值的json文件

时间:2016-05-30 15:18:39

标签: java android

我一直在努力阅读JSON文件中的某个值。所以我想使用" indices"的值。但我不确切知道如何检索它。我试图在谷歌上寻找它,但我无法找到一个我能理解的解释。这是我到目前为止只是阅读它。 (对象变量是我从文件中解析的整个JSONObject。

JSONArray arr = object.getJSONObject("statuses").getJSONObject("entities").getJSONArray("hashtags");

这是我需要的JSON部分,我需要以某种方式获取indices对象并将其转换为int数组。

{
      "statuses": [{
        "created_at": "Wed Apr 20 13:01:49 +0000 2016",
        "id": 722772259073626100,
        "id_str": "722772259073626112",
        "text": "RT @SaxionUAS: Why study in #Holland? Check this video by Study in Holland!\n\n#studyinholland #saxion",
        "entities": {
          "hashtags": [{
            "text": "Holland",
            "indices": [
              28,
              36
            ]
          }, {
            "text": "studyinholland",
            "indices": [
              77,
              92
            ]
          }, {
            "text": "saxion",
            "indices": [
              93,
              100
            ]
          }],

提前致谢。

2 个答案:

答案 0 :(得分:1)

  1. 获取状态数组
  2. 遍历此数组的对象以获取...
  3. entries object + hashtag array
  4. 遍历此数组的对象以获取索引数组
  5. 快乐的编码!

答案 1 :(得分:1)

为了获得indices数组,你可以使用

JSONArray arr = object.getJSONArray("statuses").getJSONObject(0).getJSONObject("entities").getJSONArray("hashtags").getJSONObject(1).getJSONArray("indices");

第一个索引是0,因为我们想要"状态"的第一个元素。数组,第二个索引的范围可以从0到2,具体取决于"索引"你想要达到。 拥有JSONArray之后,您可以使用其toList()方法获取经典java.lang.ArrayList,或者此函数直接转换为int数组:

int[] convert(JSONArray arr){
    int[] result = new int[arr.length()];
    for(int i = 0; i < result.length; i++){
        result[i] = arr.getInt(i);
    }
    return result;
}