如何使用JavaScript解析JSON格式的数据?
我有一个名为如何使用JavaScript解析JSON格式的数据?,javascript,json,parsing,Javascript,Json,Parsing,我有一个名为devices.JSON的外部JSON文件,其中包含以下内容: { "Android":[ {"modell":"Samsung Galaxy S9+", "version":"8.0", "formfactor":"smartphone"}, {"modell":"Google Pixel 2XL", "version":"9.0", "formfactor":"smartphone"}, {"modell":"OnePlus One+", "versi
devices.JSON
的外部JSON文件,其中包含以下内容:
{
"Android":[
{"modell":"Samsung Galaxy S9+", "version":"8.0", "formfactor":"smartphone"},
{"modell":"Google Pixel 2XL", "version":"9.0", "formfactor":"smartphone"},
{"modell":"OnePlus One+", "version":"7.1.1", "formfactor":"smartphone"},
{"modell":"Motorola Moto G (3rd Generation)", "version":"6.0.1", "formfactor":"smartphone"},
{"modell":"Motorola Moto G (1st Generation)", "version":"5.1", "formfactor":"smartphone"},
{"modell":"Phicomm Clue C230", "version":"4.3", "formfactor":"smartphone"},
{"modell":"Huawei MediaPad M3 Lite 8", "version":"7.0", "formfactor":"tablet"},
{"modell":"Xiaomi Mi Pad", "version":"5.1", "formfactor":"tablet"},
{"modell":"Samsung Galaxy Tab 3 (7.0) Lite", "version":"4.2.2", "formfactor":"tablet"},
{"modell":"Amazon Fire Tablet 7 (5th Gen)", "version":"Fire OS 5.3.3", "formfactor":"tablet"}
],
"iOS":[
{"modell":"iPhone 7", "version":"12beta", "formfactor":"smartphone"},
{"modell":"iPhone 5s", "version":"11.4.1", "formfactor":"smartphone"},
{"modell":"iPad Air", "version":"11.4.1", "formfactor":"tablet"},
{"modell":"iPad 3", "version":"9.3.5", "formfactor":"tablet"}
],
"Windows":[
{"version":"Windows 10"},
{"version":"Windows 8.1"},
{"version":"Windows 7"}
],
"macOS":[
{"modell":"Macbook Air", "version":"10.13.5"}
],
"Linux":[
{"version":"Mint"},
{"version":"Kubuntu"},
{"version":"elemetaryOS"},
{"version":"openSUSE"},
{"version":"CentOS"},
{"version":"Fedora"},
{"version":"Oracle Linux"},
{"version":"Red Hat"}
]
}
现在我想通过点击按钮来解析它,并得到如下输出:
三星Galaxy S9+(安卓8.0)、谷歌像素2XL(安卓9)、OnePlus One等
我真的不知道如何以最佳方式解析JSON
像这样的
<script>
function getArray(){
return $.getJSON('devices.json');
}
getArray().done( function(json) {
console.log(json); // show the json data in console
// Android
for(var i = 0; i < json.Android.length; i++) {
var obj = json.Android[i];
console.log(obj);
}
// Android
for(var i = 0; i < json.iOS.length; i++) {
var obj = json.iOS[i];
console.log(obj);
}
});
</script>
函数getArray(){
返回$.getJSON('devices.json');
}
getArray().done(函数(json){
log(json);//在控制台中显示json数据
//安卓
for(var i=0;i
只需映射json.Android
并记录值即可
var数据={
“安卓”:[
{“modell”:“三星Galaxy S9+”,“版本”:“8.0”,“formfactor”:“智能手机”},
{“modell”:“谷歌像素2XL”,“版本”:“9.0”,“formfactor”:“智能手机”},
{“modell”:“OnePlus 1+”,“version”:“7.1.1”,“formfactor”:“smartphone”},
{“modell”:“摩托罗拉Moto G(第三代)”,“版本”:“6.0.1”,“formfactor”:“智能手机”},
{“modell”:“摩托罗拉Moto G(第一代)”,“版本”:“5.1”,“formfactor”:“智能手机”},
{“Model”:“Phicomm线索C230”,“版本”:“4.3”,“formfactor”:“smartphone”},
{“Model”:“华为MediaPad M3 Lite 8”,“版本”:“7.0”,“formfactor”:“tablet”},
{“modell”:“小米垫”,“版本”:“5.1”,“formfactor”:“平板电脑”},
{“modell”:“三星Galaxy Tab 3(7.0)Lite”,“版本”:“4.2.2”,“formfactor”:“平板电脑”},
{“modell”:“亚马逊Fire平板电脑7(第5代)”,“版本”:“Fire OS 5.3.3”,“formfactor”:“平板电脑”}
],
“iOS”:[
{“Model”:“iPhone 7”,“version”:“12beta”,“formfactor”:“smartphone”},
{“modell”:“iphone5s”,“version”:“11.4.1”,“formfactor”:“smartphone”},
{“Model”:“iPad Air”,“version”:“11.4.1”,“formfactor”:“tablet”},
{“Model”:“iPad3”,“version”:“9.3.5”,“formfactor”:“tablet”}
],
“窗口”:[
{“版本”:“Windows 10”},
{“版本”:“Windows 8.1”},
{“版本”:“Windows 7”}
],
“macOS”:[
{“modell”:“Macbook Air”,“版本”:“10.13.5”}
],
“Linux”:[
{“版本”:“铸币厂”},
{“版本”:“Kubuntu”},
{“版本”:“elemetaryOS”},
{“版本”:“openSUSE”},
{“版本”:“CentOS”},
{“版本”:“Fedora”},
{“版本”:“Oracle Linux”},
{“版本”:“红帽”}
]
};
//三星Galaxy S9+(安卓8.0)、谷歌像素2XL(安卓9)、OnePlus One等。。。
功能测试(){
console.log(data.Android.map)(函数(项){
returnitem.model;
})。加入(“,”);
}
JS-Bin
作语法分析
假设您将json转换为变量myjson,那么这就是您需要的函数
function getDevices(){
var deviceString = '';
for(var key in myjson) {
var myOS = myjson[key];
for(var subkey in myOS){
if(myOS[subkey].modell){
deviceString += myOS[subkey].modell + " ";
}
deviceString += "(" + key + " "+ myOS[subkey].version + ") ";
}
}
console.log(deviceString);
}
console.log(json.Android.map(item=>item.model.join('),')代码>应该足够了。