在 java 脚本中将无效的 JSON 字符串解析为 JSON2

Parsing invalid JSON string to JSON2 in java script

本文关键字:字符串 JSON2 JSON 脚本 java 无效      更新时间:2023-09-26

我有一个无效的json字符串,如下所示,我想将其转换为JSON。我想摆脱 eval()。JSON.parse() 抛出异常。还有其他方法可以做到这一点吗?

 "{user:'C3DC5FF987ACB5C8CB7ADF9D774775FA', recover:[{client:'call',
call:{CTI_TELEPHONE_CALLED:'sip:217812@UKAvayatest.fnfis.com;user=phone',
CTI_CALLER_TELEPHONE:'0031205849948',
CTI_TIME_IN_QUEUE:'Created:10:59:48 03/08/15;Queued:11:00:42
03/08/15;Answered:11:00:46 03/08/15', CUSTOMER_NBR:'817',
SORTCODEACCTNO:'NO_VALUE', IDVS:'3', SKILL:'SBY SAV SE E Blocked Acct
D', CDN_NAME:'SBY SAV SE E Blocked Acct D',
CONTACT_ID:'ukbiataaep-2015141090031-5', TP_CALL_TYPE:'NO_VALUE',
TP_CALL_STATUS:'NO_VALUE'},
contactId:'ukbiataaep-2015086103648-14'},{end:'end'}]}"

这个无效的 JSON 违反的规则只是键名周围缺少引号(如 "name": )和字符串文字周围使用单引号(如 'call')。要解决这些问题,您需要遍历此字符串,插入引号或替换单引号(同时跟踪您是否在字符串文本中)。对此的通用解决方案可能非常复杂,并且仅调用eval()几乎没有好处。