gpt4 book ai didi

javascript - 如何使用 JSON.parse 在 JavaScript 中使用 JSONArray 解析 JSONObject

转载 作者:行者123 更新时间:2023-11-29 21:21:06 25 4
gpt4 key购买 nike

我在使用数组解析 JSON 对象并根据键获取值时遇到问题。我在我的一个 android 应用程序中执行此操作。我打算将该应用程序移植到 Web 应用程序。在 android 中我做这样的事情:

假设我的 json 是这样的:

{"radios":[{"name":"radio1","url":"url1"},{"name":"radio2","url":"url2"}, {"name":"radio3","url":"url3"}] }

我的代码在 Android 中看起来像这样:

JSONArray radioListArray = jsonObject.getJSONArray("radios");
ArrayList<String> radioUrlColl = new ArrayList<String>();
for(int i=0; i<radioListArray.length(); i++) {
JSONObject radObject = radioListArray.getJSONObject(i);
radioUrlColl.add(radObject.getString("url"));
}
Intent radioIntent = new Intent(arg0.getContext(), PlayerActivity.class);
String url =radioUrlColl.get(arg2); //I get the URL here
radioIntent.putExtra("radioUrl", url);

基本上,我是根据 ListView 中单击的项目的位置获取 url。有没有更简单的解决方案,我会传递 key 说 radio1 并在 Javascript 中获取相应的值 url1

最佳答案

Is there a simpler solution where i would pass the key say radio1 and get the corresponding value url1 in Javascript

不,使用该数据的结构,您仍然必须遍历条目以查找具有匹配的 name 属性的条目。

那么说 obj 是对包含该 JSON 文本的字符串调用 JSON.parse 的结果,而 targetRadio 是您想要的 radio . obj.radios 将是数组。所以你可以使用一个简单的 for 循环:

var n;
var url;
for (n = 0; n < obj.radios.length; ++n) {
if (obj.radios[n].name === targetRadio) {
url = obj.radios[n].url;
break;
}
}

或者如果你想依赖 ES5 的数组增强功能(必要时可以填充),你可以使用 some :

var url;
obj.radios.some(function(entry) {
if (entry.name === targetRadio) {
url = entry.url;
return true; // To stop looping
}
});

关于javascript - 如何使用 JSON.parse 在 JavaScript 中使用 JSONArray 解析 JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20721048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com