热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Java中解析JSONMap时出现NullPointer异常

如何解决《在Java中解析JSONMap时出现NullPointer异常》经验,为你挑选了1个好方法。

我正在尝试在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 create(@RequestBody Map obj) {
    Product respOnse= myservice.create(obj);
    return new ResponseEntity(response, HttpStatus.CREATED);
}

Service.java

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

    Object [] products = (Object[]) obj.get("products");
    HashMap  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}]

Dmitry Bogda.. 5

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

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



1> Dmitry Bogda..:

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

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


推荐阅读
author-avatar
月光魔术师2702935955
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有