【问题标题】:Can not deserialize value of type String which having int无法反序列化具有 int 的 String 类型的值
【发布时间】:2019-01-03 18:48:47
【问题描述】:

输入 JSON

{
     "MAJOR_DISEASES": "",
     "DEFICIENCIES": "\n1.INDOORCASEPAPERS:DulyattestedandpaginatedXeroxcopiesoftheindoorcasepaperswithhistorysheetandnursingchart/TPR/BP/RBSofMATUSHREEMATERNITYSURGICAL&GENERALNURSINGHOME..\n2.CostwisedetailedbreakupofInvestigationrequiredagainstthesubmittedbill\n3.DELAY:Letterfrominsured,statingreasonfordelayedintimation.",
     "CLOSE_REASONS": "",
}

Pojo 类

  import lombok.Data;

@Data
 public class DetailsResponse {

        @JsonProperty("MAJOR_DISEASES")
    public String majorDiseases;


    @JsonProperty("DEFICIENCIES")
    public String deficiencies; 


    @JsonProperty("CLOSE_REASONS")
    public String closeReasons;


       }

JSONObject misObject = new JSONObject(result);

      String GetClaimsDetailsResult =misObject.get("GetClaimsDetailsResult").toString();
      JSONObject getClaimsResultObj = new JSONObject(GetClaimsDetailsResult);
   JSONArray misTable=(JSONArray) getClaimsResultObj.get("Table");
     ObjectMapper objectMapper = new ObjectMapper();
       myObjects = objectMapper.readValue(misTable.toString(), new TypeReference<List<MISClaimResponse>>(){});

这里 result 是我从 feign 客户端获取的字符串 getClaimsResultObj 是 JSONObject 我正在使用 ObjectMapper 转换为 Object

但得到InvalidFormatException

com.fasterxml.jackson.databind.exc.InvalidFormatException:无法从字符串“1.INDOORCASEPAPERS:Dulyattested and paginated Xeroxcopiesoftheindoorcasepaperswithhistorysheetandnursingchart/TPR/BP/RBSofMATUSHREEMATERNITYSURGICAL&GENERALNURSINGHOME..

还有一个要点是我无法将输入 json 更改为第三方 api

【问题讨论】:

  • 发布一个完整的最小示例来重现问题:您没有反序列化到您声称的类。
  • 请检查我是否更新了我的问题
  • 而且它仍然不包含重现问题的完整最小示例。
  • @JBNizet 我使用 fegin 客户端获取数据,它以字符串格式返回,我将其转换为 json
  • 如果你得到这样的数据。那么你需要使它有效的json

标签: java json spring-boot


【解决方案1】:

你的 json 有问题。您需要制作有效的json;

您可以使用以下代码进行测试:

String jsonStr = "[{\"DATE_CLAIM_INTIMATED\":\"28/May/2018\",\"NAME_OF_INSURANCE_CO\":\"RGICL\",\"MEMBER_FLAG\":\"ACTIVE\",\"REGION\":\"MUMBAI\",\"UNDER_WRITTER_OFF_CD\":\"1101\",\"GROUP_CODE\":\"RBEL\",\"GROUP_NAME\":\"RELIANCEBIGENTERTAINMENTPVTLTD\",\"PROD_CD\":\"GM-F\",\"POLICY_NO\":\"110131828120000032\",\"COMMENCEMENT_DATE\":\"01/04/2018\",\"VALID_UPTO\":\"31/03/2019\",\"AGENT_NAME\":\"\",\"PHM\":\"23783070\",\"NAME\":\"PRIYAKADVEKAR\",\"EMPLOYEE_NAME\":\"MANALIKADVEKAR\",\"EMPLOYEE_NO\":\"11100476\",\"AGE\":\"45\",\"AGE_GROUP\":\"36-45Yrs\",\"RELATION\":\"Mother\",\"REL_TYPE\":\"PARENTS\",\"DT_OF_BIRTH\":\"13/07/1972\",\"SEX\":\"F\",\"SUM_INSURED\":\"200000\",\"GRADE\":\"E1\",\"PLANT_DEPT\":\"ZAPAKDIGITALENTERTAINMENTLIMITED\",\"CITY\":\"Mumbai\",\"PHS_BR_LOGGED\":\"022\",\"PHS_BR_LOC\":\"022\",\"PROCESSING_BRCH\":\"022\",\"BRANCH_FIR_NO\":\"2755459\",\"INS_CCN_NO\":\"0\",\"CL_LODGEMENT_NO\":\"181872\",\"FIR\":\"3895561\",\"FIR_EXT\":\"\",\"PARTIAL_PYMNT_SEQ\":\"0\",\"UNIQUE_CLAIM_NO\":\"38955610\",\"FIR_DATE\":\"28/05/2018\",\"UNIQUE_FIRS\":\"1\",\"AL_SENT\":\"N\",\"DT_OF_REQ_FOR_AL\":\"\",\"AL_DATE\":\"\",\"AL_AMOUNT\":0.0,\"TOTAL_AMT\":124793.0,\"PROVIDER_NO\":\"28134\",\"NAME_OF_HOSPITAL\":\"MATUSHREEMATERNITYSURGICAL&GENERALNURSINGHOME.\",\"NETWORK\":\"N\",\"NETWORK_CITY\":\"Mumbai\",\"STATE\":\"Maharashtra\",\"LEVEL_OF_CARE\":\"SECONDARY\",\"AILMENT\":\"DubRtLumpinBreast\",\"FINAL_DIAGNOSIS\":\"Dub\",\"DISEASE_CATEGORY\":\"Diseasesofthegenitourinarysystem\",\"ICD_CODE\":\"N00_N99\",\"PRIMARY_CLASSIFICATION\":\"N00_N99|N80_N98|N93|N93.9\",\"PRIMARY_PROC\":\"-1|0\",\"MAJOR_DISEASES\":\"\",\"DT_OF_ADMISSION\":\"15/05/2018\",\"DT_OF_DISCHARGE\":\"19/05/2018\",\"LENGTH_OF_STAY\":\"5\",\"DT_OF_FILE_RECEIVED\":\"26/05/2018\",\"DEFICIENCIES\":\"\\n1.INDOORCASEPAPERS:DulyattestedandpaginatedXeroxcopiesoftheindoorcasepaperswithhistorysheetandnursingchart/TPR/BP/RBSofMATUSHREEMATERNITYSURGICAL&GENERALNURSINGHOME..\\n2.CostwisedetailedbreakupofInvestigationrequiredagainstthesubmittedbill\\n3.DELAY:Letterfrominsured,statingreasonfordelayedintimation.\",\"FIRST_DEFICIENCY_LETTER_DT\":\"30/05/2018\",\"SECOND_DEFICIENCY_LETTER_DT\":\"30/05/2018\",\"DEF_INTMTN_DT\":\"11/06/2018\",\"DT_OF_RETRIVAL_COMPLETE\":\"13/06/2018\",\"FINAL_BILL_AMT\":124793.0,\"NOT_PAYABLE_EXP\":10842.0,\"CO_PYMNT_DEDUCTION\":0.0,\"NOT_COVERED_AMT\":10842.0,\"SI_EXHAUSTED_AMT\":0.0,\"NON_PAYABLE_DEF_AMT\":0.0,\"BUFFER_UTILISED_AMT\":0.0,\"REASONS\":\",Rs.2000/-InvestigationChargesDeductedSameBillDate:21/05/2018NotPayable.,Rs.1500/-InvestigationChargesDeductedSameBillDate:21/05/2018NotPayable.,Rs.724/-Gloves,Rs.50/-Gauze,Rs.65/-DettLiquid,Rs.64/-Savlon,Rs.85/-Beatdine,Rs.218/-Betadine,Rs.180/-Cotton,Rs.168/-Micropore,Rs.220/-GamjeeRoll,Rs.141/-Scrub,Rs.95/-Ashwin,Rs.860/-FlamplastChargesNotPayable.,Rs.1800/-InvestigationChargesDeductedAsReportNotAvailable.,Rs.2500/-MonitorChargesNotPayable.,Rs.134/-Cotton,Rs.4/-Blade,Rs.34/-SkinBladeChargesNotPayable.\",\"LOT_NO\":\"\",\"ROOM_NURSING_CHRGS\":20000.0,\"SURGERY_CHRGS\":50036.0,\"CONSULTANT_CHRGS\":16750.0,\"INVESTIGATION_CHRGS\":28340.0,\"MEDICINE_CHRGS\":7667.0,\"MISCELLANEOUS_CHRGS\":2000.0,\"DT_OF_CL_LODGED\":\"13/06/2018\",\"AMT_OF_CLAIM_LODGED\":113951.0,\"CL_LOD_MEMBER_PAID\":113951.0,\"CL_LOD_PHM_PAID\":0.0,\"DISCHRG_VCH_SENT_FLG\":\"Y\",\"DISCHRG_VCH_SENT_DT\":\"15/06/2018\",\"DSCHRG_VCHR\":\"Y\",\"DISCHRG_VCH_RECD_DT\":\"15/06/2018\",\"CLAIM_PASSED\":\"ClaimSettled\",\"DT_OF_CL_RECD\":\"16/06/2018\",\"DT_OF_SETTLEMENT\":\"19/06/2018\",\"DT_OF_PAYMENT\":\"\",\"AMOUNT_PAID\":0.0,\"BANK_CHEQUE_NO\":\"\",\"FLOAT_AC_NO\":\"16062018\",\"DT_OF_PYMT_MEM\":\"19/06/2018\",\"AMT_PAID_MEM\":113951.0,\"CHEQUE_NO_MEM\":\"806196691409\",\"BAL_SUM_INS\":86049.0,\"SERVICE_TAX_NO\":\"\",\"SERVICE_TAX_AMT\":0.0,\"TDS_AMT\":0.0,\"FIR_MONTH\":\"05-2018\",\"REPORTED_AMT\":124793.0,\"AMT\":113951.0,\"AMT_BAND\":\"10,00,001-1,50,000\",\"PAID_AMT\":\"113951\",\"PAID_DATE\":\"19/06/2018\",\"PAID_MONTH\":\"06-2018\",\"REJECTED_CLOSED_DATE\":\"\",\"REJECTED_CLOSED_MONTH\":\"\",\"TYPE_OF_CLAIM\":\"REIMBURSEMENT\",\"STATUS\":\"PAID\",\"OUT_CLAIM_STATUS\":\"\",\"DENIAL_REASONS\":\"\",\"CLOSE_REASONS\":\"\"}]";
    String jsonFormattedString = jsonStr.replaceAll("\\\\", "");
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false)
            .readValue(jsonFormattedString, new TypeReference<List<MISClaimResponse>>(){});

【讨论】:

  • 它是第三方 api 我无法更改 json 格式
  • 您如何从第三方接收数据
  • 在 json 中有一个对象那么你为什么要转换对象列表
  • 我已经添加了我从 feign 客户端获得的响应字符串
  • 现在检查。我更新了分析器。您的 json 接收中的问题
猜你喜欢
  • 2017-10-19
  • 2017-09-06
  • 1970-01-01
  • 2023-01-25
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
  • 2023-02-02
  • 1970-01-01
相关资源
最近更新 更多