将带有text / html标头的json字符串转换为有效对象

时间:2012-10-13 18:50:19

标签: php jquery json

我有这个PHP脚本

if (!$chunks || $chunk == $chunks - 1) {
// Strip the temp .part suffix off 
    rename("{$filePath}.part", $filePath);
    if( $content = $this->html_file_uploaded( $filePath ) ){

        die('{"Done" : "yee", "content" : "woe" , "id" : "id"}');
            }

在JavaScript中我想做

 FileUploaded: function(up, file, info) {
    // Called when a file has finished uploading

    $('body').prepend('FileUploaded fired<br>'+info.Done);

但如果我将其写入页面

,则返回undefined
$('body').prepend('FileUploaded fired<br>'+info.Done);

var info = $.parseJSON(info);对我不起作用。

我怎样才能让它发挥作用?

修改 JavaScript和PHP来自plupload api

我不想使用json_encode,除非我被告知发送这样的字符串永远不会工作,或者不可靠。我感兴趣的是如何将字符串转换为有效的对象。 我使用在线json string checker并表示它无效, - 无法格式化JSON输入。 JSONObject文字必须以'{'“Done”附近的字符1处的'{'开头:'

2 个答案:

答案 0 :(得分:1)

JSON.parse()就是您所需要的。如果这不起作用,你在php方面做错了。

注意:如果你想在旧版浏览器中包含JSON支持(谁说IE7?),你需要包含来自https://github.com/douglascrockford/JSON-js的Douglas Crockford的JSON2.js

答案 1 :(得分:1)

在回调函数内部(引用为FileUploaded)执行

var obj = $.parseJSON(info.response);

现在您可以引用obj.Done

之类的回复