如何在 java spark 中解析 json 请求
How to parse json request in java spark
我正在尝试解析使用 java-spark 中的 HTTP post "body" 请求发送的 JSON 对象。例如,如果我发送 JSON 对象,例如:
{\"name"\ : \"john\", \"age\":\"300\"}
。
我想在不同的字符串中获取姓名和年龄。到目前为止,我已经在 java-spark 中尝试过这个:
post("/test", "application/json", (req,res) -> {
String name = req.queryParams("name");
return "hi : " + name;
});
但它 returns 嗨:结果为空。
我在网上搜索了很多,但总是找到复杂的结果,有没有简单的方法?
注意:这不是 Apache spark。
编辑:我已经设法在 pom.xml 中添加 JSON-简单库作为依赖项,并且我尝试了以下操作:
JSONObject obj = new JSONObject(req.body());
但是我得到一个错误:
String cannot be converted to map
尽管那条线在我的 android 开发中有效。
首先请验证您获取的字符串是否采用正确的 JSON 格式。并验证您可以使用 Validate JSON.
验证通过后,您可以尝试以下操作。
我相信你应该使用它的解析而不是 JSONObject 来解析 JSON.
例如:
JSONParser parser = new JSONParser();
String s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
Object obj = parser.parse(s);
JSONArray array = (JSONArray)obj;
试试下面的链接,希望能帮助您更好地理解。
我正在尝试解析使用 java-spark 中的 HTTP post "body" 请求发送的 JSON 对象。例如,如果我发送 JSON 对象,例如:
{\"name"\ : \"john\", \"age\":\"300\"}
。 我想在不同的字符串中获取姓名和年龄。到目前为止,我已经在 java-spark 中尝试过这个:
post("/test", "application/json", (req,res) -> {
String name = req.queryParams("name");
return "hi : " + name;
});
但它 returns 嗨:结果为空。
我在网上搜索了很多,但总是找到复杂的结果,有没有简单的方法? 注意:这不是 Apache spark。
编辑:我已经设法在 pom.xml 中添加 JSON-简单库作为依赖项,并且我尝试了以下操作:
JSONObject obj = new JSONObject(req.body());
但是我得到一个错误:
String cannot be converted to map
尽管那条线在我的 android 开发中有效。
首先请验证您获取的字符串是否采用正确的 JSON 格式。并验证您可以使用 Validate JSON.
验证通过后,您可以尝试以下操作。
我相信你应该使用它的解析而不是 JSONObject 来解析 JSON.
例如:
JSONParser parser = new JSONParser();
String s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
Object obj = parser.parse(s);
JSONArray array = (JSONArray)obj;
试试下面的链接,希望能帮助您更好地理解。