我一直在努力阅读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
]
}],
提前致谢。
答案 0 :(得分:1)
快乐的编码!
答案 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;
}