【发布时间】:2019-06-02 11:56:35
【问题描述】:
我正在尝试从 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);
}
Service.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实例上获得了 NPE,请确保它已正确连接到您的服务中 -
其接线正确,我可以打印 obj 值