You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用NewtonSoft.Json解析JSON遇Unexpected end of string错误求助

JSON解析错误排查及修复方案

问题根源

你的JSON存在核心语法问题,引发了一系列解析报错:

  • 多行字符串未转义:JSON规范要求字符串内的换行必须用\n转义,不能直接换行。原fields字段的内容直接换行,导致解析器认为字符串提前结束,触发"Unexpected end of string"错误。
  • 连锁语法误解:VSCode的其他报错(如"Expected Comma"、"Colon Expected"、"Property Keys must be double quoted")是连锁反应——解析器错误地将未转义换行后的内容当作JSON结构的一部分,而非字符串内容,因此把字段名(如MED_CLM_SK)当成了JSON属性键,要求符合JSON键的语法规则。

修复后的JSON示例

方案1:转为单行字符串(推荐,更简洁)

{
    "tables": [
        "%USER%.ABCDE_FAC_FINAL_%YEAR%",
        "%USER%.ABCDE_FAC_STAGE_%YEAR%",
        "%USER%.ABCDE_PROF_FINAL_%YEAR%",
        "%USER%.UABCDE_PROF_STAGE_%YEAR%"
    ],
    "fields": "(MED_CLM_SK NUMBER(18) not null, MED_SRVLN_SK NUMBER(18) not null, PMT_DT_KEY NUMBER(18) not null, CLM_CTRL_NUM VARCHAR2(50) null, LINE_CNTR_NUM NUMBER(18) null, PCES_HCPCS_CPT_PROC_CD VARCHAR2(50) null, REV_CD VARCHAR2(50) null, NS_IPUT_SRC_CD VARCHAR2(50) null, PLACE_OF_SERV_CD VARCHAR2(50) null, TOS_CD VARCHAR2(50) null, SERV_FR_DT_KEY NUMBER(18) null, NS_SUBS_CERT VARCHAR2(50) null, PAT_FULL_NAME VARCHAR2(50) null, PAT_BRTH_DT_KEY NUMBER(18) null, RECD_DT INTEGER null, LN_PROR_AMT NUMBER(18) null, LN_CHG_AMT NUMBER(18) null, TAX_ID VARCHAR2(25) null, LIC_NUM VARCHAR2(20) null, LINE_DISP VARCHAR2(2) null)"
}

方案2:保留换行并转义

如果需要保留原格式的换行,需对每个换行添加\n转义:

{
    "tables": [
        "%USER%.ABCDE_FAC_FINAL_%YEAR%",
        "%USER%.ABCDE_FAC_STAGE_%YEAR%",
        "%USER%.ABCDE_PROF_FINAL_%YEAR%",
        "%USER%.UABCDE_PROF_STAGE_%YEAR%"
    ],
    "fields": "(\n    MED_CLM_SK                NUMBER(18)        not null  \n    ,MED_SRVLN_SK              NUMBER(18)        not null  \n    ,PMT_DT_KEY                NUMBER(18)        not null \n    ,CLM_CTRL_NUM              VARCHAR2(50)          null  \n    ,LINE_CNTR_NUM             NUMBER(18)            null  \n    ,PCES_HCPCS_CPT_PROC_CD    VARCHAR2(50)          null\n    ,REV_CD                    VARCHAR2(50)          null\n    ,NS_IPUT_SRC_CD            VARCHAR2(50)          null  \n    ,PLACE_OF_SERV_CD          VARCHAR2(50)          null\n    ,TOS_CD                    VARCHAR2(50)          null\n    ,SERV_FR_DT_KEY            NUMBER(18)            null\n    ,NS_SUBS_CERT              VARCHAR2(50)          null\n    ,PAT_FULL_NAME             VARCHAR2(50)          null\n    ,PAT_BRTH_DT_KEY           NUMBER(18)            null\n    ,RECD_DT                   INTEGER               null \n    ,LN_PROR_AMT               NUMBER(18)            null \n    ,LN_CHG_AMT                NUMBER(18)            null       \n    ,TAX_ID                    VARCHAR2(25)          null                      \n    ,LIC_NUM                   VARCHAR2(20)          null \n    ,LINE_DISP                 VARCHAR2(2)           null  \n\n)"
}

修复原理

将fields的内容处理为符合JSON规范的字符串:要么合并为单行,要么对换行符转义,确保解析器将整个内容识别为单个字符串值,而非JSON结构的一部分,这样就能解决所有报错,NewtonSoft.Json也能正常解析。

内容的提问来源于stack exchange,提问作者Mark Ainsworth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 13:05:56