json 小问题

算是找错了路踩对了坑。项目中遇到个问题,配置表某字段的json贼啦长,修改接口走一趟之后app直接崩了,没有捕捉到错误信息。面对贼啦长的json简直不想看,后经排查,发现json中的一个null值导致。虽然我的问题是代码逻辑中手动添加了null值进去的,跟本文没啥关系,还是总结下。
别人踩坑连接:踩过的神坑,文章大意如下:
jsonObject1.getString(“userName”) 不管是null 还是 “null” 都会返回字符串“null”;

    try {

      JSONObject jsonObject1 = new JSONObject();
      jsonObject1.put("userName", null);
      System.out.println(jsonObject1.getString("userName"));
    } catch (JSONException e) {
      e.printStackTrace();
    }

    try {
      JSONObject jsonObject2 = new JSONObject();
      jsonObject2.put("userName", "null");
      System.out.println(jsonObject2.getString("userName"));
    } catch (JSONException e) {
      e.printStackTrace();
    }

Gson null 和 “null”是有区别的。

Gson gson = new Gson();
People p1= gson.fromJson("{\n" +
    "  \"userName\":null\n" +
    "}", People.class);
People p2 = gson.fromJson("{\n" +
    "  \"userName\":\"null\"\n" +
    "}", People.class);
Log.d("tango", String.valueOf(TextUtils.isEmpty(p1.userName)));
Log.d("tango", String.valueOf(TextUtils.isEmpty(p2.userName)));
--------------------- 
作者:superjimmy 
来源:CSDN 
原文:https://blog.csdn.net/superjimmy/article/details/52535993 
版权声明:本文为博主原创文章,转载请附上博文链接!

另附:参考文章

你可能感兴趣的:(*【理论奠基】)