Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在json请求中发送json字符串?_Json - Fatal编程技术网

如何在json请求中发送json字符串?

如何在json请求中发送json字符串?,json,Json,我需要在json请求中发送一个json字符串,并在后端将其作为对象进行解组。ie JSon请求有一个字符串属性,可以稍后转换为对象。它的格式是什么 我尝试了{“姓名”:“鲍勃”,“地址”:{“州”:“纽约”,“城市”:“纽波特”}。我不希望“地址”:{…}在这里被取消签名。。我希望它被发送,因为它是作为一个字符串后端 FWIW,我用的是杰克逊,我认为这不重要 另外,我不想逃避角色,即 地址:{\'state\':\'ny\',\'city\':\'newport\'}我不会自己手动编码json,

我需要在json请求中发送一个json字符串,并在后端将其作为对象进行解组。ie JSon请求有一个字符串属性,可以稍后转换为对象。它的格式是什么

我尝试了
{“姓名”:“鲍勃”,“地址”:{“州”:“纽约”,“城市”:“纽波特”}
。我不希望
“地址”:{…}
在这里被取消签名。。我希望它被发送,因为它是作为一个字符串后端

FWIW,我用的是杰克逊,我认为这不重要

另外,我不想逃避角色,即
地址:{\'state\':\'ny\',\'city\':\'newport\'}

我不会自己手动编码json,无论您使用何种语言,都要使用合适的json编码器

{“name”:“bob”,“address”:{“state”:“ny”,“city”:“newport”}}
不是有效的json。应该引用整个字符串。比如:

“{\”姓名\“:\”鲍勃\“,\”地址\“:{\”州\“:\”纽约\“,\”城市\“:\”纽波特\“}}”

它将作为字符串到达后端。这就是json字符串,一个字符串

您需要使用适当的json解码器在服务器端对其进行解码

如果不想转义引号,请使用单引号和双引号的组合,如:

“{”name:“bob”,“address:{”state:“ny”,“city:“newport”}}”

使用php:

<?php
$a = json_encode(array("state"=>"NY", "city"=> "Newport"));
$b = array("name"=>bob, "address"=>$a);
print_r($a);
print "\n";
print_r(json_encode($b));
print "\n";
?>

最后一行是你的答案——但是让代码为你做总是更好的。

你是否尝试过
jsonecode
这个
json
字符串来看看发生了什么?你到底为什么要这样做?这不起作用?{“name”:“bob”,“address”:“{'state':'ny','city':'newport'}”不,问题是它试图将{“state”:…}整理成一个对象,而不是将其整理成字符串。(目标对象具有字符串“jsonString”属性。可能是傻瓜,但请尝试以下方法:{“name”:“bob”,“address”:“{“state”:“ny”,“city”:“newport”}是的,我已经试过了,但无论出于什么原因,我不能使用转义字符。有没有其他方法,而不是使用转义字符。谢谢!如果我没有得到任何其他答案,我会将其标记为正确答案,因为这是正确的,但m要求有点不同。只使用建议的单个quoutes包装没有单个quotes只是说了不正确的json。我最后以{“姓名”:“鲍勃”,“地址”:{“州”:“纽约”,“城市”:“新港”}的形式发送它最终将地址编组为一个映射,该映射在后端仅用于获取密钥状态和城市。显然,jackson只是将未知对象转换为映射。在编组类中,我将address属性作为对象(也可以选择它作为映射)。谢谢!如果要按原样发送字符串,选择此作为正确答案作为编码是正确的方法。
{"state":"NY","city":"Newport"}
{"name":"bob","address":"{\"state\":\"NY\",\"city\":\"Newport\"}"}