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

时间:2016-02-05 17:21:02

标签: javascript json

我有一个无效的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'}]}"

1 个答案:

答案 0 :(得分:0)

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