Javascript json字符串拆分为符号

时间:2017-04-12 09:04:34

标签: javascript json

我从Symfony ajax控制器收到一个标准的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];
}

任何想法如何解决?谢谢。

1 个答案:

答案 0 :(得分:2)

发生的事情是您从服务器获得的JSON没有立即解析为JSON,但被识别为字符串。循环遍历字符串会返回单个字符,如果要将字符串拆分为字符,则非常有用,但现在不能。

解决方案是将字符串解析为JSON对象:

var filterData = new FilterData(JSON.parse(json));

另一种解决方案是更改API发送的标头。在这种情况下,它是一个PHP应用程序,因此以下代码就足够了:

header('Content-type: application/json');