2 hilljordan hilljordan 于 2016.03.23 22:30 提问

询问一个关于JSON问题

能不能把这样的格式:
[["environment","正常"],["video","正常"],["edfa","正常"],["servers","正常"],["network","正常"],["other","正常"]]

转成这种格式:
{["environment":"正常"],["video":"正常"],["edfa":"正常"],["servers":"正常"],["network":"正常"],["other":"正常"]}

5个回答

tosmaller
tosmaller   2016.03.24 12:12
已采纳

首先说一下,第二种形式是不正确的,可能楼主打错了吧。
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)
enpterexpress
enpterexpress   2016.03.24 10:44

二维数组转化为一个没有名称的对象

zxl881209
zxl881209   2016.03.23 23:20

你可以先把上面的数组解析出来,自己在拼接字符串

fubo1990
fubo1990   2016.03.24 11:33

第一条是list格式的数据 eg:List a;
第二条是json格式的数据 JSONObject b
可以的转换。你在java中用b = JSONArray.fromObject(a);
你可以试试。我们项目中都是这样处理的。

qq_33867930
qq_33867930   2016.03.23 22:50

上面的那种格式可以正常解析出来啊,获取两个JSONA数组,这两个数组,他们是嵌套的关系,这个是你从网络上获取到的数据,转不了的。

tosmaller
tosmaller 上面那种是二维数组..
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!