如何从jquery PHP返回json对象

I want to return a JSON object from jQuery but i get the following error:

VM93:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1.

The following is my code:

<?php
  $soapclient = new SoapClient();
  $params = array("id" => "31");
  $response = $soapclient->GetMovieById($params);
  echo json_encode($response);
?>
<script>
$(document).ready(function(){
    $("#mylittleweewee").click(function(){
        $.ajax({
            url: "soap.php",
            type: "POST",
            dataType: "json",

            success: function(response){
                console.log(response);
                var json = JSON.parse(response);
                console.log(json);
            }
        });
    });
})
</script>
dplbf4340
dplbf4340 如果您刚刚获得JSON,则不需要整个$.ajax仪式。只需使用$.getJSON即可
4 年多之前 回复
dongningce9075
dongningce9075 向我们展示此函数的代码:GetMovieById。
4 年多之前 回复
dongzhen7108
dongzhen7108 是否可以将其转换为适当的JSON?我不这么认为。你能把完整的代码吗?
4 年多之前 回复
douwei4370
douwei4370 它基于对xml的soap请求
4 年多之前 回复
dsvtnz6350
dsvtnz6350 老板,看起来不像JSON。那就是问题所在...
4 年多之前 回复
doushi3819244
doushi3819244 Object{GetMovieByIdResult:Object}GetMovieByIdResult:Object__proto__:ObjectVM94:1UncaughtSyntaxError:位置1的JSON中出现意外的令牌o我在控制台中收到此错误消息
4 年多之前 回复
douliaodun9153
douliaodun9153 好的,那么你在控制台中得到了什么?
4 年多之前 回复
doubei5114
doubei5114 你能否更正你的帖子以获得正确的代码?
4 年多之前 回复

2个回答



当你指定 dataType:“json”</ code>时,jQuery已经为你执行了JSON解码,所以你的 response </ code>已经是一个对象。 你应该删除这一行:</ p>

  var json = JSON.parse(response); 
</ code> </ pre>

... 并使用 response </ code>作为对象。</ p>
</ div>

展开原文

原文

As you are specifying dataType: "json", jQuery already performs the JSON decoding for you, so your response is already an object. You should remove this line:

var json = JSON.parse(response);

... and work with response as an object.



响应应该是一个文本,顺序是使用 JSON.parse </ code>
我的意见只是移动 dataType:“json”</ code>到 dataType:“html”</ code> </ p>
</ div>

展开原文

原文

response should be a text in the order to use JSON.parse in my opinion just move dataType: "json" to dataType: "html"

douniao8687
douniao8687 你是对的,但服务器返回JSON,而不是HTML:echo json_encode($ response); 所以我认为OP需要删除var json = JSON.parse(response);
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问