java - 如何将 JSON 数组作为 URL 中的参数传递

标签 java json spring web-services

我需要在 Web 服务调用中将一些值从移动设备传递到服务器,因此我计划以 JSON 格式传递所有值,如下所示

{
    "nameservice": [
        {
            "id": 7413,
            "name": "ask"
        },
        {
            "id": 7414,
            "name": "josn"
        },
        {
            "id": 7415,
            "name": "john"
        },
        {
            "id": 7418,
            "name": "R&R"
        }
    ]
}

以下是我的服务调用

@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();
}

我正在尝试通过这种方式调用上述服务

localhost:8080/service/saveName?acc={ "nameservice": [ { "id": 7413, "name": "ask" }, { "id": 7414, "name": "josn" }, { "id": 7415, "name": "john" }, { "id": 7418, "name": "R&R" } ] }

但是输出是这样的

{ "nameservice": [ { "id": 7413, "name": "ask" }, { "id": 7414, "name": "josn" }, { "id": 7415, "name": "john" }, { "id": 7418, "name": "R

任何人都可以告诉我为什么我没有得到所有的值(value)吗?

最佳答案

我建议将正文中的 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

关于java - 如何将 JSON 数组作为 URL 中的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27577922/

相关文章:

forms - Spring中的重复表单提交

python 3.6 将 dict 字节解码为 json 不工作

javascript - 使用 PHP 从 JSON 检索对象

java - 彼此有 2 个本地事务(在不同的数据源上)

spring - 如何将 TDD 应用于逐层封装设计?

java - 你知道有哪些库接受一个对象并返回一个字符串来表示如何使用它的构建器类来构建该对象吗?

java - 监控 Tomcat StandardThreadExecutor 的队列大小 (MBean)

java - System类和PrintStream类是什么关系

java - 为什么 AUTO_RESIZE_LAST_COLUMN 的作用与 AUTO_RESIZE_ALL_COLUMNS 类似?

java - 在多节点环境中仅触发一次调度作业