以下是我去过的地方:
我通过soap进行了PHP客户端调用以检索数据数组,
我成功收到并通过json_encode将我的数组转换为JSON,
然后我回复到我的页面。
我就在这里:
我以这种格式取回我的阵列......
{ “方法名”: “ID,11 | 1 | Item1,22 | 2 | Item2,33 | 3 |项目3”}
这就是我想要的地方:
使用Javascript或JSON,我的目标是最终得到2个变量(Method& ID)和一个变量数组(ItemList)......即
我的脚本正面和背面都在工作,但是我对阵列(字符串)感到难过...... 如何解析,分割或拆分此结果?
答案 0 :(得分:5)
如果你在调用json_encode之前将它作为一个混合数组放在php中,那么你可以自己做得更简单(因此,不是字符串,每个项目都是它自己的JSON对象)。
示例:
$arr = array();
$itemList = array();
$itemList[1] = "11|1";
$itemList[2] = "22|2";
$itemList[3] = "33|3";
$arr['Method']="MethodName";
$arr['ID']= "ID";
$arr['itemList'] = $itemList;
$output = json_encode($arr);
这导致$output
具有以下JSON:
{"Method":"MethodName","ID":"ID","itemList":{"1":"11|1","2":"22|2","3":"33|3"}}
然后您可以轻松地将其拉出,因为itemList已经是JSON中的数组。
答案 1 :(得分:2)
我可能会先尝试使用正则表达式。
之类的东西var match = data.match(/\{"(.+)"\:"([^,]+),(.+)"\}/);
括号将分开匹配。 match[0]
将是整个事情,match[1]
将是方法名称,match[2]
将是id,match[3]
将余数作为字符串。然后你可以做
var itemList = match[3].split(',');
获取第3部分的数组。
答案 2 :(得分:0)
假设您的初始数组是initial_array,其值为{“MethodName”:“ID,11 | 1 | Item1,22 | 2 | Item2,33 | 3 | Item3”}
for (key in initial_array) {
Method = key; // Method = "MethodName"
break;
}
myvalue = initial_array[Method];
myarray = myvalue.split(","); // myarray = ["ID","11|1|Item1",...]
ID = myarray[0]; // ID = "ID"
ItemList = myarray.splice(1); // ItemList = ["11|1|Item1","22|2|Item2",...]
答案 3 :(得分:0)
你走了:
var myobject = {"MethodName":"ID,11|1|Item1,22|2|Item2,33|3|Item3"};
var itemlist = [];
var method;
var ID;
for (key in myobject) {
method = key;
break;
}
itemlist = myobject[method].split(',');
ID = itemlist.shift();