的Javascript JSON字符串分割成
问题描述:
我收到我的Symfony Ajax控制器标准的JSON符号:的Javascript JSON字符串分割成
{"id":1,"filial":0} //like this
,然后我尝试将其转换以德下面的代码对象:
var filterData = new FilterData(json);//my received json here
console.log(filterData);
但我console.log向我显示以下内容:
FilterData {0: "{", 1: """, 2: "i", 3: "d", 4: """, 5: ":", 6: "1", 7: ",", 8: """, 9: "f", 10: "i", 11: "l", 12: "i", 13: "a", 14: "l", 15: """, 16: ":", 17: "0", 18: ",", 19: """, //etc...
但我需要一个常规的FilterData对象。它的代码如下:
function FilterData(json) {
this.id;
this.filial;
for (var prop in json) this[prop] = json[prop];
}
任何想法如何解决它?谢谢。
答
发生了什么事情是您从服务器获得的JSON没有立即解析为JSON,而是被识别为字符串。通过字符串循环返回单个字符,如果要将字符串拆分为其字符,但不是现在,这非常有用。
的解决方案是将字符串解析到一个JSON对象:
var filterData = new FilterData(JSON.parse(json));
另一种解决方案是改变标头由API发送。在这种情况下,它是一个PHP应用程序,所以下面的代码就足够了:
header('Content-type: application/json');
你可以尝试'var filterData = new FilterData(JSON.parse(json))''?我猜JSON变量是作为一个字符串键入的。 –
JSON.parse(json)解决了这个问题,谢谢 – Jack
我会在一分钟内添加一个答案,以便您可以设置此问题解决 –