最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - jsonObject is a string - how to convert to json? - Stack Overflow

programmeradmin1浏览0评论

I have a weird problem with one of my ajax submitted forms … I have a file-upload in the form and somehow a valid JSON Object from the server is now a String …

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"}

So, without the file-upload and the enctype:multipart in the form console.log(jsonObject) is returning >Object with a "success" and "data" attribute. With the file-upload in the form somehow the jsonObject is a string like you can see above.

Any ideas what could cause that? Or how can I convert the string back to a valid JSON object?

Thank you in advance.

I have a weird problem with one of my ajax submitted forms … I have a file-upload in the form and somehow a valid JSON Object from the server is now a String …

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"}

So, without the file-upload and the enctype:multipart in the form console.log(jsonObject) is returning >Object with a "success" and "data" attribute. With the file-upload in the form somehow the jsonObject is a string like you can see above.

Any ideas what could cause that? Or how can I convert the string back to a valid JSON object?

Thank you in advance.

Share Improve this question edited Feb 21, 2012 at 10:23 Felix Kling 817k181 gold badges1.1k silver badges1.2k bronze badges asked Feb 21, 2012 at 10:23 mattmatt 44.4k107 gold badges268 silver badges402 bronze badges 2
  • JSON only exists in JavaScript as a string... so your request is a bit confusing. I assume you want a JavaScript object. – Felix Kling Commented Feb 21, 2012 at 10:24
  • Yes, you're right, didn't exactly know the difference. I need a jsObject - correct! – matt Commented Feb 21, 2012 at 10:42
Add a ment  | 

3 Answers 3

Reset to default 6

You run it through JSON.parse, while using json2.js to provide that method for older browsers.

var js_object = JSON.parse(json_string);

(And that will give you a JavaScript object, since there is no such thing as a JSON object).

If you are already using jQuery, then it has its own abstraction method — jQuery.parseJSON — that you can use instead of json2.js. It is an excessively large library to load just for that feature though.

how can I convert the string back to a valid [..] object?

jsonObject = JSON.parse(jsonObject);

You can use JSON.parse which will only work in new version of browser(will not work in IE7-) or you can use $jQuery.parseJSON

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

发布评论

评论列表(0)

  1. 暂无评论