roc*_*ing 27 java spring json web-services
我要求在Web服务调用中将一些值从移动设备传递到服务器,因此我打算以JSON格式传递所有值,如下所示
{
"nameservice": [
{
"id": 7413,
"name": "ask"
},
{
"id": 7414,
"name": "josn"
},
{
"id": 7415,
"name": "john"
},
{
"id": 7418,
"name": "R&R"
}
]
}
Run Code Online (Sandbox Code Playgroud)
以下是我的服务电话
@RequestMapping("/saveName")
@ResponseBody
public String saveName(String acc)
{jsonObject = new JSONObject();
try
{
);
System.out.println(acc);
jsonObject.accumulate("result", "saved ");
}
catch(Exception e)
{
e.printStackTrace();jsonObject.accumulate("result", "Error Occured ");
}
return jsonObject.toString();
}
Run Code Online (Sandbox Code Playgroud)
我试图通过这种方式调用上述服务
localhost:8080/service/saveName?acc={ "nameservice": [ { "id": 7413, "name": "ask" }, { "id": 7414, "name": "josn" }, { "id": 7415, "name": "john" }, { "id": 7418, "name": "R&R" } ] }
Run Code Online (Sandbox Code Playgroud)
但输出是这样的
{ "nameservice": [ { "id": 7413, "name": "ask" }, { "id": 7414, "name": "josn" }, { "id": 7415, "name": "john" }, { "id": 7418, "name": "R
Run Code Online (Sandbox Code Playgroud)
可以告诉我为什么我没有得到所有的价值观吗?
RE3*_*350 38
我建议将身体中的JSON数据作为POST
请求传递.但是如果您仍想将其作为URL中的参数传递,则必须对您的URL进行编码,例如: -
对于ex json是: - >{"name":"ABC","id":"1"}
testurl:80/service?data=%7B%22name%22%3A%22ABC%22%2C%22id%22%3A%221%22%7D
有关URL编码的更多信息,请参阅下文
https://en.wikipedia.org/wiki/Percent-encoding
小智 24
我知道这可能是后来的帖子,但是,对于新访问者,我将分享我的解决方案,因为OP要求通过GET传递JSON对象的方法(而不是其他答案中建议的POST).
我在某些情况下使用了这个,我只能做GET调用而且它有效.此外,该解决方案实际上是跨语言的.
小智 6
我知道这已经很旧了,但如果其他人想知道为什么他们会得到像上面这样不完整的 json ,是因为 & 符号&
是 URL 中用于分隔参数的特殊字符。
在您的数据中,有一个&符号R&R
。因此 acc 参数在到达 & 字符时结束。
这就是为什么你会得到被切割的数据。解决方案是对数据进行 url 编码,或者像已接受的解决方案建议的那样以 POST 形式发送。
归档时间: |
|
查看次数: |
148756 次 |
最近记录: |