com.google.gson.stream.MalformedJson Expected literal value at line 1 column 28
1892 단어 정리 하 다.
Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected literal value at line 1 column 28
이 오 류 는 json 문자열 에 문제 가 있 습 니 다.
나 는 이런 문자열 을 가지 고 있다.
String httpResponse="{\"code\":\"0\",\"success\":true,\"data\":{\"IsSuccess\":1,\"FailReason\":\"\",\"RefundOrderId\":\"161017132456273328\",\"ErrorCode\":\"\"},\"message\":\"\",\"requestid\":\"8ef58d60-7d72-46ec-b16a-3692b30d4a5c\"}";
Refund response=new Gson().fromJson(httpResponse, Refund.class);
BaseResponse baseResponse=new BaseResponse();
baseResponse.setCode(response.getCode());
baseResponse.setMessage(response.getMessage());
baseResponse.setSuccess(response.isSuccess());
baseResponse.setData(response.getData().toString());// baseResponse.setData(new Gson().toJson(response.getData()));
사실 여기 있 는 json 문자열 은{IsSuccess=1.0,FailReason=,RefundOrderId=161017132456273328,ErrorCode=}이렇게 되 었 습 니 다.
RefundApplyResponse res1=new Gson().fromJson(baseResponse.getData(),RefundApplyResponse.class);
우리 쪽 코드 는 모두 BaseResponse 로 먼저 변환 한 다음 에 대응 하 는 대상 으로 전환 해 야 하기 때문에 저 는 코드 를 간단하게 복 사 했 습 니 다.아직 안 붙 인 게 많아 요.
이 코드 를 실행 하면잘못 을 보고 하 다
그래서 위의 Data 의 json 문자열 로 대상 을 바 꾸 면 틀림없이 잘못 보고 할 것 이다.
그럼 어떻게 해결 해 야 되 지?데이터 에 빈 데 이 터 를 어떻게 사용 합 니까?""따옴표 가 자동 으로 제거 되 지 않 습 니 다."
그래서 잘못된 JSon 문자열 을 만 들 려 면 다음 과 같이 수정 하 십시오:
baseResponse.setData(new Gson().toJson(response.getData()));
인쇄 된 json 문자열 은{"IsSuccess":1.0,"FailReason":","RefundOrderId":"161017132456273328","ErrorCode":"}입 니 다.
이렇게 하면 돼 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
com.google.gson.stream.MalformedJson Expected literal value at line 1 column 28오늘 json 문자열 을 사용 하여 대상 을 바 꿀 때 오류 가 발생 했 습 니 다.그래서 정 리 를 해 보도 록 하 겠 습 니 다. Exception in thread "main" com.google.gson.Js...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.