如何使用JSON.NET对JSON字符串进行反序列化,该JSON.NET对字段使用空引号而不是null

如何使用JSON.NET对JSON字符串进行反序列化,该JSON.NET对字段使用空引号而不是null,.net,json,json.net,deserialization,.net,Json,Json.net,Deserialization,我正在尝试使用JSON.NET反序列化一些reddit注释(以JSON返回)。我遇到了一个问题,注释中有一个字段“Replies”,它要么是另一个注释对象,要么是空引号(“”)。问题是,当反序列化一个字段时,JSON.NET反序列化程序会抛出一个异常,该字段需要一个对象,但会找到“”(我希望它是在查找null而不是“”) 例如: "data":{ "body":"We were being trolled. ", "subreddit_id":"t5_2qh1i", "author_flair

我正在尝试使用JSON.NET反序列化一些reddit注释(以JSON返回)。我遇到了一个问题,注释中有一个字段“Replies”,它要么是另一个注释对象,要么是空引号(“”)。问题是,当反序列化一个字段时,JSON.NET反序列化程序会抛出一个异常,该字段需要一个对象,但会找到“”(我希望它是在查找null而不是“”)

例如:

"data":{

"body":"We were being trolled. ",
"subreddit_id":"t5_2qh1i",
"author_flair_css_class":null,
"created":1318984933.0,
"author_flair_text":null,
"downs":1,
"author":"evange",
"created_utc":1318959733.0,
"body_html":"<div class=\"md\"><p>We were being trolled.</p></div>",
"levenshtein":null,
"link_id":"t3_lghhj",
"parent_id":"t3_lghhj",
"likes":null,
"replies":"",
"id":"c2shf1a",
"subreddit":"AskReddit",
"ups":6,
"name":"t1_c2shf1a"

   }
“数据”:{
“尸体”:“我们被拖走了。”,
“subreddit_id”:“t5_2qh1i”,
“author\u flair\u css\u class”:空,
“已创建”:1318984933.0,
“作者天赋”文本:空,
"唐斯":一,,
“作者”:“伊万奇”,
“创建utc”:1318959733.0,
“body_html”:“我们被跟踪了。

”, “levenshtein”:空, “链接id”:“t3\U lghhj”, “家长id”:“t3\U lghhj”, “喜欢”:空, “答复”:“, “id”:“c2shf1a”, “subreddit”:“AskReddit”, “ups”:6, “名称”:“t1_c2shf1a” }
然后是:

"data":{

    "body":"Dude, it was a Roll Troll. Forget it.",
    "subreddit_id":"t5_2qh1i",
    "author_flair_css_class":null,
    "created":1318985233.0,
    "author_flair_text":null,
    "downs":1,
    "author":"youngmonk",
    "created_utc":1318960033.0,
    "body_html":"<div class=\"md\"><p>Dude, it was a Roll Troll. Forget it.</p></div>",
    "levenshtein":null,
    "link_id":"t3_lghhj",
    "parent_id":"t3_lghhj",
    "likes":null,
    "replies":{
        "kind":"Listing",
        "data":{
            "modhash":"",
            "children":[....etc
“数据”:{
“尸体”:“老兄,那是个滚轴巨魔,算了吧。”,
“subreddit_id”:“t5_2qh1i”,
“author\u flair\u css\u class”:空,
“已创建”:1318985233.0,
“作者天赋”文本:空,
"唐斯":一,,
“作者”:“小和尚”,
“创建utc”:1318960033.0,
“body_html”:“老兄,那是个掷骰子。算了吧。

”, “levenshtein”:空, “链接id”:“t3\U lghhj”, “家长id”:“t3\U lghhj”, “喜欢”:空, “答复”:{ “种类”:“上市”, “数据”:{ “modhash”:“, “儿童”:[……等
有没有一种方法可以用JSON.NET来反序列化它,或者我必须使用正则表达式来搜索“回复”:“将所有这些空引号更改为null?”


谢谢!

这里的问题是与“回复”关联的类型属性是动态的:它可以是字符串或JSON对象。如果您使用.NET 4.0,则应使用dynamic关键字来反映数据的动态性质。如果您使用的是另一个版本的.NET,则可以反序列化为Newtonsoft.JSON.Linq.JObject。请看一个示例。祝您好运。

您查看了吗?我将不得不接受看一看-我相信如果值为null就可以了,但是“”引起了一个问题,也许我可以让反序列化程序将“”视为null,谢谢提示!