我正在使用Java编写RESTful Web服务,该服务应该能够将(POST)输入作为未知数量的参数名称,值对。我在想什么是实现这一目标的最佳方法。
POST输入为JSON,预期格式为:
{"input" :
{ "x" = 1, "y"="Hello, "z"="1.2.3.4",... }
}
参数值应该是int / long / float / string等的混合。预期的行为是将此输入保存到DB并根据请求提供它。棘手的部分是参数名称未知,我无法编写getter和setter方法。有一个简单的方法来处理这个?
任何指向正确方向的人都会非常感激。我可以将其作为列表阅读吗?我是否需要编写自定义MessageBodyReaders?有没有其他方法来实现这一目标?我能想到的唯一选择是将这些文件作为文件发送并解析它,但我希望有更简单/更清晰的解决方案。谢谢你的任何指示...
答案 0 :(得分:1)
如果您需要做的就是保存它并根据要求提供它,为什么要解析呢?只需将json作为字符串写入数据库,并将响应类型设置为“application / json”时将其作为字符串返回。有一点需要注意的是,你必须要有一些方法来识别你想要的json字符串,并将一个唯一的id关联起来,以便将来在请求特定的json字符串时能够确定。 / p>
值得注意的是,当你不解析某些东西时,你实际上并不知道它是什么。即使很多现代库/框架已经对sql注入/ xss进行了清理,但如果您还不确定,那么验证这是在您的服务器中完成是值得的。
话虽如此,如果你仍然觉得你需要解析json,我会调查gson:http://code.google.com/p/google-gson/