格式化的JSON数据
notifyItemChanged()
从上述JSON请求中,我只想使用Java Reflection提取{
"userId":"123",
"userName":"user",
"age":12
}
数据以存储在数据库中。
答案 0 :(得分:0)
您可以使用jackson
json解析器。
下面只是一个代码示例(不能保证它将为您编译和工作),您应该将其放入接收请求的控制方法中。
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
//put below codes in your request handling method
String jsonStr = req.getReader().lines().collect(Collectors.joining(
System.lineSeparator()));
System.out.println(jsonStr);
JsonNode rootNode = new ObjectMapper().readTree(new StringReader(jsonStr));
JsonNode userName=rootNode.get("userName");
String userNameStr=userName.asText();
// store in data base
您可以参考https://fasterxml.github.io/jackson-databind/javadoc/2.2.0/com/fasterxml/jackson/databind/package-summary.html以获得api详细信息。
答案 1 :(得分:0)
您可以使用以下代码从json数据中获取用户名。
JSONObject obj = new JSONObject(YOUR_JSON.toString());
String userName = obj.getString("userName");
答案 2 :(得分:0)
有2种解决方案:
jackson
,gson
,json.org
...并从JsonNode获取用户名。如果只需要获取用户名,则可以使用正则表达式来获取它
"userName":"((\\"|[^"])+)"
group(1)
是您的用户。
答案 3 :(得分:0)
您可以使用JSON库解析字符串并检索值。
基本示例:
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
String jsonString = "{ \"userId\":\"123\", \"userName\":\"user\", \"age\":12 }";
JSONObject jsonObject = new JSONObject(jsonString);
String userName = jsonObject.getString("userName");
System.out.println("UserName is: " + userName);
}
}
输出:
UserName is: user
注意:不要忘记在POM文件中添加json依赖项。
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160810</version>
</dependency>
尽管有更多的JSON库可用,例如jackson,google-gson等。您可以使用其中任何一个。