【问题标题】:Handling a stringified JS object in C#在 C# 中处理字符串化的 JS 对象
【发布时间】:2012-04-10 09:34:09
【问题描述】:

我能够将字符串化的 Javascript 对象返回到我的 C# 项目。字符串如下所示:

{"QuestionId":"","QuestionTitle":"hiu","OriginalURL":"","OriginalTitle":"","ChronicID":""}

如何在 C# 中轻松地将其转换为具有这些参数的对象?

更新:我得到了它的工作。请参阅下面的代码。

SearchQuery search = (SearchQuery)JsonConvert.DeserializeObject(@filterParams, typeof(SearchQuery));

【问题讨论】:

    标签: c# javascript json


    【解决方案1】:

    使用Json.Net

    dynamic dynObj = JsonConvert.DeserializeObject(jsonstr);
    Console.WriteLine("{0} {1}", dynObj.QuestionId, dynObj.QuestionTitle);
    

    使用JavaScriptSerializer

    JavaScriptSerializer serializer = new JavaScriptSerializer();
    var obj = serializer.Deserialize<Dictionary<string,object>>(jsonstr);
    Console.WriteLine("{0} {1}", obj["QuestionId"], obj["QuestionTitle"]);
    

    编辑

    string jsonstr = @"{""QuestionId"":""123"",""QuestionTitle"":""hiu"",""OriginalURL"":"""",""OriginalTitle"":"""",""ChronicID"":""""}";
    

    【讨论】:

    • 谢谢,这很有趣,可以帮助我了解发生了什么
    • @user1274649 我在发布之前对它们都进行了测试。而not working 也不是很能解释。
    • 感谢您的帮助。所以这是 VS 中出现的实际字符串:
    • "\"QuestionId\":\"123\",\"QuestionTitle\":\"title\",\"OriginalURL\":\"\",\"OriginalTitle\": \"\",\"ChronicID\":\"\"}"
    • 当我尝试转换这样的字符串“'Newtonsoft.Json.Linq.JObject'不包含'QuestionId'的定义”时会发生这种情况,这是我尝试实现的:f( filterParams != null) { 动态搜索 = JsonConvert.DeserializeObject(filterParams); Console.WriteLine("{0} {1}", search.QuestionId, search.QuestionTitle); }
    【解决方案2】:

    您正在寻找 JSON 解析器

    【讨论】:

    • 这有什么帮助?至少链接到一个...?
    【解决方案3】:

    您需要一个用于 .NET 的 JSON 库。 JSON 代表 JavaScript Object Notation,它基本上就是您在问题中粘贴的内容。

    我个人喜欢Json.NET

    仅供参考,从您的问题中显示对象的“更漂亮”的方式是:

    { 问题ID:'', QuestionTitle: 'hiu', 原始网址:'', 原文标题:'', 慢性病号:'' }

    【讨论】:

    • 谢谢,您回答了我的问题。原来 JSON 库已经包含在我正在处理的项目中。 :)
    • 编辑:你是什么意思显示?这就是字符串在我的代码中出现的方式,所以我需要按原样解析它。
    • 我的意思是,如果所有内容都像这样标出,则更容易阅读。 JSON解析器不在乎它是否全部在一行上,它只是为了人类可读性。
    猜你喜欢
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多