jsonObject是一个字符串 - 如何转换为json?

时间:2012-02-21 10:23:03

标签: javascript string json

我的一个ajax提交的表单有一个奇怪的问题...我在表单中有一个文件上传,不知何故来自服务器的有效JSON对象现在是一个字符串......

if (typeof jsonObject == 'string')
        console.log('yes, it's a string'); //yes, it's a string

console.log(jsonObject); // { "status":"success", "data":"Updated profile successfully"}

因此,如果没有文件上传,enctype:multipart形式的console.log(jsonObject)将返回>Object,其中包含“成功”和“数据”属性。以某种方式在表单中上传文件,jsonObject就像你在上面看到的一样。

任何可能导致这种情况的想法?或者我如何将字符串转换回有效的JSON对象?

提前谢谢。

3 个答案:

答案 0 :(得分:6)

您通过JSON.parse运行它,同时使用json2.js为旧浏览器提供该方法。

var js_object = JSON.parse(json_string);

(这会给你一个JavaScript对象,因为那里有is no such thing as a JSON object)。

如果您已经在使用jQuery,那么它有自己的抽象方法 - jQuery.parseJSON - 您可以使用它来代替json2.js。这是一个过大的库,只为该功能加载。

答案 1 :(得分:3)

  

如何将字符串转换回有效的[..]对象?

jsonObject = JSON.parse(jsonObject);

答案 2 :(得分:0)

您可以使用JSON.parse,它只适用于新版本的浏览器(在IE7中不起作用)或者您可以使用$ jQuery.parseJSON

http://api.jquery.com/jQuery.parseJSON/