json-lib
팀원이 json-lib를 써서 json 문자열을 JSONObject로 변환하는 부분이 있었다.
하지만 하나의 특정 url에서 아래처럼 에러코드가 나기 시작했다.
1 2 3
| JSON keys must be strings.
|
그래서 json-lib를 보기 시작했는데 key값이 String 타입인줄 체크하고 있었다
api에서 보니 JsonConfig 객체의 AllowNonStringKeys 변수값을 수정하면 위에 에러를 피할수 있어서
아래 처럼 회피를 했다.
1 2 3 4 5 6 7 8 9
| JsonConfig config = new JsonConfig(); config.setAllowNonStringKeys(true); JSONObject json = JsonMapper.fromObject("{"123123":"xxxxx"}",config);
```
하지만 위처럼 수정을해도 다른 에러가 나기 시작했다.
|
JSON keys must not be null nor the ‘null’ string.
1 2 3 4 5 6 7 8 9 10 11
| 해당 에러을 회피할수가 없어서 소스를 확인했더니 무조건 키에 null이라는 값이 들어오면 에러를 발생시키게 만들었다. JSONObject 에 930 line
```java
String key = String.valueOf( k ); if( "null".equals( key )){ throw new NullPointerException("JSON keys must not be null nor the 'null' string."); }
|
그러면 json 표준에 키값이 null이라는 string을 사용하지 못하게 강제 했는지 확인 작업을 하였지만
그런 내용이 없어서 위에 에러발생 시키는 코드를 삭제 배포해서 해결했다.
참조