Skip to content
This repository has been archived by the owner on Jul 22, 2022. It is now read-only.

json 字符串 转map的时候,如果值是 null value,转换的时候会报异常 #99

Closed
venusdrogon opened this issue Jul 28, 2017 · 3 comments
Assignees
Labels
Milestone

Comments

@venusdrogon
Copy link
Owner

venusdrogon commented Jul 28, 2017

image

image

@venusdrogon
Copy link
Owner Author

 @Test
    public void toMap123(){
        Map<String, String> map = JsonUtil.toMap("{'brandCode':null}");
        assertThat(map, allOf(hasEntry("brandCode", null)));

    }

结果

23:49 TRACE (JsonUtil.java:1074) [toMap()] input json:[{'brandCode':null}],jsonToJavaConfig:[null]
23:49 TRACE (JsonUtil.java:1087) [toMap()] key:[brandCode],value:[null],value type is:[net.sf.json.JSONNull]

@venusdrogon venusdrogon self-assigned this Jul 29, 2017
@venusdrogon venusdrogon added this to the 1.10.5 milestone Jul 29, 2017
@venusdrogon
Copy link
Owner Author

venusdrogon commented Jul 30, 2017

     s = sb.toString()
            .trim();
      if( s.equals( "" ) ){
         throw syntaxError( "Missing value." );
      }
      if( s.equalsIgnoreCase( "true" ) ){
         return Boolean.TRUE;
      }
      if( s.equalsIgnoreCase( "false" ) ){
         return Boolean.FALSE;
      }
      if( s.equals( "null" ) || 
          (jsonConfig.isJavascriptCompliant() && s.equals("undefined"))){
         return JSONNull.getInstance();
      }

net.sf.json.util.JSONTokener.nextValue(JsonConfig) 在这里 设置JSONNull的

修改了一版

    static <T> T transformerValue(Object value,JsonToJavaConfig jsonToJavaConfig){
        if (JSONNull.getInstance().equals(value)){
            return null;
        }
        //如果rootClass是null,表示不需要转换
        boolean noRootClass = null == jsonToJavaConfig || null == jsonToJavaConfig.getRootClass();
        return noRootClass ? (T) value : JsonUtil.<T> toBean(value, jsonToJavaConfig);
    }

@venusdrogon
Copy link
Owner Author

    @Test
    public void toMap123(){
        Map<String, String> map = JsonUtil.toMap("{'brandCode':null}");
        assertThat(map, allOf(hasEntry("brandCode", null)));

        assertEquals(null, map.get("brandCode"));
    }

@venusdrogon venusdrogon changed the title json 转bean null value 会报异常 json 字符串 转map的时候,如果值是 null value,转换的时候会报异常 Jul 30, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

1 participant