2013-08-27 54 views
0

我需要使用PHP curl来发布JSON数据。在搜索这个网站后,我发现了一些例子,并且知道数据应该作为数组提交,但我仍然得到“({”message“:”cjson解码错误“,”code“:500,”error“:true})”每次发布数据后都会发生错误。PHP Curl Post - JSON解码错误

原始数据看起来像这样(从Firefox现场的httpd头):

{"nodes":[{"id":"","type":"some_type","parentId":"ROOT","refId":null,"href":"","text":"New","desc":"","tags":"","cr":123}],"revision":11,"token":"some_token"} 

现在,这里是我尝试通过卷曲提交数据

json_encode(array("nodes"=>array("id"=>"", "type"=>"some_type", "parentId"=>"ROOT", "refId"=>"", "href"=>"", "text"=>"New", "desc"=>"", "tags"=>"", "cr"=>"123"), "revision"=>"11", "token"=>"some_token")); 

有人能告诉我什么是错在这里?

回答

0

如果您回应的第二行,你会发现它不符合您在第一行发布的内容。

正确的版本将是以下几点:

json_encode(array("nodes"=>array(array("id"=>"", "type"=>"some_type", "parentId"=>"ROOT", "refId"=>"", "href"=>"", "text"=>"New", "desc"=>"", "tags"=>"", "cr"=>"123")), "revision"=>"11", "token"=>"some_token")); 

现在是相同的结构,你在第一行发布的内容。 (见周围的节点列表中的其它阵列。你需要一个额外的阵列()那里,因为格式似乎支持张贴不止一个“节点”的想法。

+0

不幸的是,仍然显示相同的错误。是否需要如果你比较两个不同的HTTP请求(您想效仿之一,你手动掀起了一个)围绕一个位打更多... –

+0

- ?是否有任何区别 – Sebastian

+0

我怎么可能对它们进行比较,我只是用livehttpdheaders插件来查看发布了什么样的dyte,然后使用curl发布相同的东西(包括引用者等) –