2013-08-27 3 views
0

Мне нужно использовать PHP curl для публикации данных JSON. После поиска на этом сайте я нашел несколько примеров и узнал, что данные должны быть представлены как массив, но я все еще получаю «({« сообщение »:« ошибка декодирования cjson »,« код »: 500,« error »: true})» ошибка каждый раз после публикации данных.PHP Curl Post - Ошибка декодирования JSON

Исходные данные выглядит следующим образом (от светлячок живых 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

К сожалению, эта же ошибка все еще отображается. немного поиграть ... –

+0

Если вы сравниваете два разных HTTP-запроса (тот, который вы хотите эмулировать, и тот, который вы задали вручную) - есть ли какие-то различия? – Sebastian

+0

Как я могу их сравнить? Я просто использую livehttpdheaders плагин, чтобы узнать, что отправляется dyte, а затем использовать curl для публикации одного и того же материала (включая источники и т. д.). –