问题描述
- 询问一个关于JSON问题
-
能不能把这样的格式:
[["environment","正常"],["video","正常"],["edfa","正常"],["servers","正常"],["network","正常"],["other","正常"]]转成这种格式:
{["environment":"正常"],["video":"正常"],["edfa":"正常"],["servers":"正常"],["network":"正常"],["other":"正常"]}
解决方案
首先说一下,第二种形式是不正确的,可能楼主打错了吧。
JSON格式有两种形式,一种是{},这样的两个大括号,一种是[{}],中括号里面包含多个大括号,后者习惯称为json数组。
json的构造必须遵守key-value形式,否则就是会出现语法上的错误。
我按照第二种的形式写了一个循环,你可以看下,也许不是你想要的
//二维数组
var testArray=[["environment","正常"],["video","正常"],["edfa","正常"],["servers","正常"],["network","正常"],["other","正常"]];
//构建json数组
var testJsonArray=[];
for(var i=0;i
if(testArray[i].length>2){
//如果长度大于2,构造json混乱,排除这种情况
break;
}else{
var testJson={};//构建json
testJson[testArray[i][0]]=testArray[i][1];//json构建
testJsonArray.push(testJson);//添加到数组
}
}
alert(JSON.stringify(testJsonArray));
结果为 [{"environment":"正常"},{"video":"正常"},{"edfa":"正常"},{"servers":"正常"},{"network":"正常"},{"other":"正常"}]
![图片说明](http://img.ask.csdn.net/upload/201603/24/1458792731_703215.png)
解决方案二:
二维数组转化为一个没有名称的对象
解决方案三:
你可以先把上面的数组解析出来,自己在拼接字符串
解决方案四:
第一条是list格式的数据 eg:List a;
第二条是json格式的数据 JSONObject b
可以的转换。你在java中用b = JSONArray.fromObject(a);
你可以试试。我们项目中都是这样处理的。
解决方案五:
上面的那种格式可以正常解析出来啊,获取两个JSONA数组,这两个数组,他们是嵌套的关系,这个是你从网络上获取到的数据,转不了的。