Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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

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
Java 参数数目未知的RESTful Web服务_Java_Json_Rest - Fatal编程技术网

Java 参数数目未知的RESTful Web服务

Java 参数数目未知的RESTful Web服务,java,json,rest,Java,Json,Rest,我正在使用Java编写一个RESTful web服务,它应该能够接受(POST)输入未知数量的参数名、值对。我在想实现这一目标的最佳方式是什么 POST输入将是JSON,预期格式为: {"input" : { "x" = 1, "y"="Hello, "z"="1.2.3.4",... } } 参数值应该是int/long/float/string等的混合体。预期的行为是将此输入保存到DB,并在请求时提供给DB。棘手的是参数名未知,我无法编写getter和setter方法。有没有一个简单的

我正在使用Java编写一个RESTful web服务,它应该能够接受(POST)输入未知数量的参数名、值对。我在想实现这一目标的最佳方式是什么

POST输入将是JSON,预期格式为:

{"input" :
  { "x" = 1, "y"="Hello, "z"="1.2.3.4",... }
}
参数值应该是int/long/float/string等的混合体。预期的行为是将此输入保存到DB,并在请求时提供给DB。棘手的是参数名未知,我无法编写getter和setter方法。有没有一个简单的方法来处理这个问题


任何指向正确方向的指示都将非常感谢。我能把这个读作一个列表吗?我是否需要编写自定义MessageBodyReaders?有没有其他方法可以达到这个目的?我能想到的唯一选择是将它们作为文件发送并解析,但我希望有更简单/更干净的解决方案。感谢您的指点…

如果您只需要保存它并在请求时提供它,那么为什么还要解析它呢?只需将json作为字符串写入数据库,并将其作为字符串返回,同时将响应类型设置为“application/json”。需要注意的一点是,您必须有某种方法来识别所需的json字符串,并关联一个唯一的id,以便在将来请求特定的json字符串时能够确定该id

这里值得注意的是,当你不解析某个东西时,你实际上并不知道它是什么。尽管许多现代库/框架已经针对sql注入/xss进行了清理,但如果您还不确定是否在您的服务器中进行了清理,则值得验证


也就是说,如果您仍然觉得需要解析json,我会研究gson:

如果您只需要保存它并在请求时提供它,那么为什么还要解析它呢?只需将json作为字符串写入数据库,并将其作为字符串返回,同时将响应类型设置为“application/json”。需要注意的一点是,您必须有某种方法来识别所需的json字符串,并关联一个唯一的id,以便在将来请求特定的json字符串时能够确定该id

这里值得注意的是,当你不解析某个东西时,你实际上并不知道它是什么。尽管许多现代库/框架已经针对sql注入/xss进行了清理,但如果您还不确定是否在您的服务器中进行了清理,则值得验证


话虽如此,如果您仍然觉得需要解析json,我会研究gson:

我很困惑。你在给哪张桌子写信?你的钥匙在哪里?如果两者都有,就可以使用基于它们的GET/PUT/POST url模式。我将写入一个DB表,输入请求将在上面显示的示例数组之外具有其他参数,这些参数将构成表的主键-问题是输入数组中的属性,我可以将它们保存为HashMap吗?戴夫回答说我应该把它保存为字符串。因此,我试图探索如何将整个请求保存为字符串,而不包含各个字段的getter和setter。我感到困惑。你在给哪张桌子写信?你的钥匙在哪里?如果两者都有,就可以使用基于它们的GET/PUT/POST url模式。我将写入一个DB表,输入请求将在上面显示的示例数组之外具有其他参数,这些参数将构成表的主键-问题是输入数组中的属性,我可以将它们保存为HashMap吗?戴夫回答说我应该把它保存为字符串。因此,我试图探索如何将整个请求保存为字符串,而不包含各个字段的getter和setter。我可以将整个字符串保存为json。我想弄清楚的是如何将整个消息体解析为字符串。我知道如何在消息体中的字段上编写getter和setter并解析它们。我是不是错过了一些很明显的东西(您使用的是哪种web服务器?或者您是否编写了自己的web服务器(可能是为了一个学校项目)?我使用JBoss作为web服务器,使用RestEasy开发Restful API我从未使用过JAX-RS,但我在这里读了一些文档:看起来您应该能够使用@Consumers(“text/plain”)将请求的内容转换为变量。Dave,非常感谢您为我指明了正确的方向。这是我第一次使用web服务,我非常感谢您的帮助。我现在可以将整个帖子正文解析为字符串!!Dave,感谢您的回复。我可以将整个字符串保存为json。我正在尝试的是要弄清楚我是如何将整个消息体解析为字符串的。我知道如何在消息体中的字段上编写getter和setter并解析它们。我是否遗漏了一些非常明显的东西?:(您使用的是哪种Web服务器?或者您是否编写了自己的(可能是为了学校项目)?我使用JBoss作为web服务器,RestEasy用于开发Restful API我从未使用过JAX-RS,但我在这里读了一些文档:看起来您应该可以使用@consumes(“文本/普通”)将请求的内容放入变量中。Dave,非常感谢您为我指明了正确的方向。这是我第一次使用web服务,我非常感谢您的帮助。我现在可以将整个帖子正文解析为字符串!!