gpt4 book ai didi

java - 在java中解析JSON Map时出现NullPointer异常

转载 作者:行者123 更新时间:2023-12-02 07:53:50 25 4
gpt4 key购买 nike

我正在尝试从 REST API 中的以下 JSON 中解析 ProductId、名称和价格 - 但当我尝试获取他的 name 时,出现空指针异常 - String name = (String) obj.get("name");,我可以知道我在这里做错了什么吗?

任何帮助将不胜感激。谢谢!

JSON:

{
"id": "af0b86eb-046c-4400-8bc4-0e26042b8f53",
"products": [{
"productId": "1234",
"name": "apple",
"price": "383939"
}
]
}

Controller.java

public ResponseEntity<Object> create(@RequestBody Map<String, Object> obj) {
Product response = myservice.create(obj);
return new ResponseEntity<Object>(response, HttpStatus.CREATED);
}

服务.java

public Product create(Map<String, Object> obj) { 
for (Entry<String, Object> entry : obj.entrySet()) {
System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue());
}

Object [] products = (Object[]) obj.get("products");
HashMap <String, Object> productOne = (HashMap) products[0];
String productId = (String) productOne.get("name");
System.out.println("productId: " +productId);

String name = (String) obj.get("name");
System.out.println("name: " +name);
}

输出:

Key : products Value : [{productId=1234, name=apple, price=383939}]

最佳答案

通过 obj.get("name"),您尝试从 json 请求的顶层通过键 name 获取值,而它是 a 的属性二级对象

在伪代码中(跳过转换和空检查),它应该如下所示:obj.get("产品")[0].get("名称")

关于java - 在java中解析JSON Map时出现NullPointer异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54080821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com