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

时间:2014-01-30 17:14:09

标签: json

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

我试过了{"name":"bob","address":{"state":"ny","city":"newport"}}。我不希望"address" : {...}在这里被解组。我希望它被发送到后端作为字符串。

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

另外,我不想逃避角色即  "address":{\"state\":\"ny\",\"city\":\"newport\"}

2 个答案:

答案 0 :(得分:0)

我不会尝试自己手动编码json,使用适当的Json编码器来处理你正在使用的任何语言。

{"name":"bob","address":{"state":"ny","city":"newport"}}无效json。应该引用整个字符串。像:

"{\"name\":\"bob\",\"address\":{\"state\":\"ny\",\"city\":\"newport\"}}"

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

您需要使用适当的json解码器解码服务器端

如果你不想逃避引号,那么使用单引号和双引号的组合,如:

'{"name":"bob","address":{"state":"ny","city":"newport"}}'

答案 1 :(得分:0)

使用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";
?>

输出

{"state":"NY","city":"Newport"}
{"name":"bob","address":"{\"state\":\"NY\",\"city\":\"Newport\"}"}

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