从php使用cURL时JSON中出现意外标记

从php使用cURL时JSON中出现意外标记,php,curl,graphql,Php,Curl,Graphql,Im在远程服务器上使用Graphql,在主服务器上使用php+curl,当Im尝试更新或创建新Im时,收到一个错误“位置JSON中的意外令牌**” 我真的很想保护自己,但没用。如果im从graphql前端发出请求,则工作正常 精细JSON请求: mutation { updateMarket(Id: "002384fa-7d45-e911-9c76-00155d056158", Lat: 122, Lng: 1) { Id Lat } } Php代码: $ch = cu

Im在远程服务器上使用Graphql,在主服务器上使用php+curl,当Im尝试更新或创建新Im时,收到一个错误“位置JSON中的意外令牌**”

我真的很想保护自己,但没用。如果im从graphql前端发出请求,则工作正常

精细JSON请求:

mutation {
  updateMarket(Id: "002384fa-7d45-e911-9c76-00155d056158", Lat: 122, Lng: 1) {
    Id
    Lat
  }
}
Php代码:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, '192.168.1.1:4040/graphql');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "mutation {\n  updateMarket(Id: \"002384fa-7d45-e911-9c76-00155d056158\", Lat: 122, Lng: 1) {\n    Id\n    Lat\n  }\n}");
curl_setopt($ch, CURLOPT_POST, 1);

$headers = array();
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);

这不是正确的JSON语法。你想从这个“变异”行中得到什么?

经过一段时间的研究,我找到了一个库“gmostafa/php graphql client”(composer require),它是从php为graphql API进行查询和变异的好工具。

这不是有效的JSON。不要创建自己的json,创建一个数组,然后使用json_encode确保它的格式有效。我想在id=**时更新行。当我得到一行“{”query:“query{markets{ShopAddress}}}”就可以了。谢谢!正如@aynber所说的-使用
json\u encode
函数获得正确的json格式