加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从.NET中的字符串中提取JSON

发布时间:2020-12-15 23:35:50 所属栏目:百科 来源:网络整理
导读:输入字符串是一些文本与有效 JSON的混合: !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"TITLETitle/TITLEMETA http-equiv="Content-Type" content="text/html; charset=UTF-8" /META HTTP-EQUIV="Content-language" CONTENT="en"META HTTP
输入字符串是一些文本与有效 JSON的混合:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<TITLE>Title</TITLE>

<META http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<META HTTP-EQUIV="Content-language" CONTENT="en">
<META HTTP-EQUIV="keywords" CONTENT="search words">
<META HTTP-EQUIV="Expires" CONTENT="0">

<script SRC="include/datepicker.js" LANGUAGE="JavaScript" TYPE="text/javascript"></script>
<script SRC="include/jsfunctions.js" LANGUAGE="JavaScript" TYPE="text/javascript"></script>

<link REL="stylesheet" TYPE="text/css" HREF="css/datepicker.css">

<script language="javascript" type="text/javascript">
function limitText(limitField,limitCount,limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0,limitNum);
    } else {
        limitCount.value = limitNum - limitField.value.length;
    }
}
</script>
{"List":[{"ID":"175114","Number":"28992"]}

任务是将其JSON部分反序列化为某个对象.该字符串可以以某些文本开头,但它肯定包含有效的JSON.我试过使用JSON validation REGEX,但是在.NET中解析这种模式时出现了问题.
所以最后我只想得到:

{
    "List": [{
        "ID": "175114","Number": "28992"
    }]
}

澄清1:
整个杂乱的字符串中只有一个JSON对象,但文本可以包含{}(它实际上是HTML,可以包含带有< script> function(){…..的javascripts

解决方法

使用正则表达式查找所有可能的JSON结构:

Regex example

然后迭代所有这些匹配单元,找到一个不会导致异常的匹配:

JsonConvert.SerializeObject(match);

如果您知道JSON结构的格式,请使用JsonSchema.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读