[英]How to parse HTML string using JSON.parse() in JavaScript?
[英]How to Parse a JSONObject with JSONArray in JavaScript using JSON.parse
我在解析带有数组的JSON对象并获取基于Key的值时遇到麻烦。 我在我的一个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);
基本上,我基于列表视图中Clicked项的位置获取URL。 有没有更简单的解决方案,我可以通过关键字radio1并在Javascript中获取相应的值url1
有没有更简单的解决方案,我可以通过关键字radio1并在Javascript中获取相应的值url1
不,使用该数据的结构,您仍然必须遍历所有条目以查找具有匹配name
属性的条目。
所以说obj
是在包含该JSON文本的字符串上调用JSON.parse
的结果,而targetRadio
是您想要的无线电。 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
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.