我想知道如何使用jquery分割它...
"{"answer":["q1001-a2","q1002-a2","q1003-a2","q1004-a2","q1005-a2","q1006-a2"]}"
所以我可以制作以下JSON ......
{
"d": [
{
"question": 1001,
"answer": "a2"
},
{
"question": 1002,
"answer": "a2"
}
]
}
感谢。
答案 0 :(得分:1)
循环answer
,将元素拆分为-
,创建新元素,然后将其推送到d
。
var ret = {d: []};
// if you have json string, then you could jQuery.parseJSON to parse it
var obj = {"answer":["q1001-a2","q1002-a2","q1003-a2","q1004-a2","q1005-a2","q1006-a2"]};
var answers = obj.answer, tmp, i;
for (i = 0; i < answers.length; i++) {
tmp = answers[i].split('-');
ret.d.push({"question": tmp[0], "answer": tmp[1]});
}
的 The live DEMO 强> 的
答案 1 :(得分:0)
http://api.jquery.com/jQuery.parseJSON/
猜这应该有帮助。
"{"answer":["q1001-a2","q1002-a2","q1003-a2","q1004-a2","q1005-a2","q1006-a2"]}"
应该看起来像
'{"answer":["q1001-a2","q1002-a2","q1003-a2","q1004-a2","q1005-a2","q1006-a2"]}'
您可以尝试将“q1001”和“ - ”替换为带有符合JSON标准的字符串的正则表达式,但它不是通用的解决方案
答案 2 :(得分:0)
在jquery中使用格式化函数,如下所示:
var string = "{\"key\":\"val}{ue\"}{'key':'val}{ue'}{ \"asdf\" : 500 }";
var result = string.match(/('.*?')|(".*?")|(\d+)|({)|(:)|(})/g);
var newstring = "";
for (var i in result) {
var next = parseInt(i) + 1;
if (next <= result.length) {
if (result[i] == "}" && result[next] == "{") {
newstring += "},";
}
else {
newstring += result[i];
}
}
中详细说明