现有这样的一个字符串
[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}]|3|^
[{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}]|24|^
[{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]|26|最终要得到的结果是:[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}][{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}][{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]
这样的三个字符串 并且能得到每条字符串后面 | | 中间的这个值 例如 第一条后面的 3 第二条后面的 24
也就是当某个条件等于 3 的时候 我会用第一个字符串等于 24 的时候 我会用第二个字符串
{id:3,result:[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}]}{id:24,result:[{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}]}{id:26,result:[{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]}然后构成一个jsonobject
之后你可以取对应的id的result
var str = '[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}]|3|^[{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}]|24|^[{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]|26|';
var arr = str.split('^'), arrResult = new Array();
for( var i = 0; i < arr.length; i ++) arrResult.push(arr[i].split('|'));function s(n) {
for (var i = 0; i < arrResult.length; i ++) {
if (arrResult[i][1] == n) return arrResult[i][0];
}
return false;
}
alert(s(24));
</script>
麻烦问一下 像你这样写 id: 的这个值是我拼串的时候 传进去的
比如说 var iid = 这个id 的值时
我该如何取到跟这个 id 对应的result 呢
{3:[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}],24:[{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}],26:[{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]}然后转换成json对象
大致转法是这样
obj=上面的字符串;
obj=eval('('+obj+')')
然后你要取3的时候就result=obj[3],就可以了,如果不行就把key都用字符串表示吧'3'什么的,数字应该是可以的如果像上面id这样的做法就要遍历jsonobject的key 这个网上搜一下遍历json的key就可以了
最终大致就是if(obj.id==3){alert(obj.result);}就是你要的
<script>
var str = '\
[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}]|3|^\
[{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}]|24|^\
[{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]|26|\
';var json = Function("return {" + str.replace(/(\[[^\]]+\])\|([^\|]+)\|[^\[]?/g, "$2:$1,").replace(/,$/, "}"))();alert("姓名:" + json[24][0].name);
alert("芳龄:" + json[24][0].age);
</script>
上面json = {
3:[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}],
24:[{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}],
26:[{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]
}
<script>
var str = '\
[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}]|3|^\
[{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}]|24|^\
[{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]|26|\
';var json = Function("return {" + str.replace(/(\[[^\]]+\])\|([^\|]+)\|[^\[]*/g, "$2:$1,").replace(/,$/, "}"))();alert("姓名:" + json[24][0].name);
alert("芳龄:" + json[24][0].age);
</script>