如何从Request.Properties [“MS_QueryNameValuePairs”]解析json键值到对象C# [重复]

Posted

技术标签:

【中文标题】如何从Request.Properties [“MS_QueryNameValuePairs”]解析json键值到对象C# [重复]【英文标题】:How to parse json key - value to object C# from Request.Properties["MS_QueryNameValuePairs"] [duplicate] 【发布时间】:2017-10-17 22:31:25 【问题描述】:

我有字符串 json 为

"[\"Key\":\"a\",\"Value\":\"1\",\"Key\":\"b\",\"Value\":\"2\"]"

我想解析对象

class abc
public string aget; set;
public string bget; set;

请帮帮我

【问题讨论】:

您是否遇到了一些错误或什么?我希望您尝试自己找到解决方案,对:) ***.com/questions/4611031/… 为什么 2K+ 代表用户回答这个明显的重复?阅读How to Answer。 否,json 字符串作为键值对。我想将键值对转换为对象类 @CodeCaster:这不是一个完全正确的骗局 - 可能有一个,但在这种情况下,复杂性在于它不是像 Propety: Value 这样的 json,而是 Key: "propertyname", Value: "Value"是一个更难的问题。 【参考方案1】:

你必须Newtonsoft Library 并使用

var dict=  JsonConvert.DeserializeObject<Dictionary<string,int>>("[\"Key\":\"a\",\"Value\":\"1\",\"Key\":\"b\",\"Value\":\"2\"]"); 

【讨论】:

附加信息:无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型“System.Collections.Generic.Dictionary`2[System.String,System.Int32]”,因为该类型需要一个 JSON 对象(例如 "name":"value")才能正确反序列化。【参考方案2】:

Json.NET 是一个流行的 .NET 高性能 JSON 框架

安装这个 nuget 包然后就很简单了:

var json = "[\"Key\":\"a\",\"Value\":\"1\",\"Key\":\"b\",\"Value\":\"2\"]";

var items = JsonConvert.DeserializeObject<List<abc>>(json);

【讨论】:

这实际上能处理键/值属性的格式而不是更常见的a: Value 类型语法吗?如果我运行代码,我会为 ab 得到 null ... 是的。这是格式键/值【参考方案3】:

我不知道如何解析为已定义的对象。 但是,您可以使用名为 Newtonsoft 的 .Net 库 JObject o = JObject.Parse(x.ToString());

JObject 是 Newtonsoft.JSON.Linq.JObject 的一个实例

【讨论】:

以上是关于如何从Request.Properties [“MS_QueryNameValuePairs”]解析json键值到对象C# [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 AppDelegate.m 调用 ViewController.m 方法

如何从 AppDelegate.m 访问 tabBarController?

在 Perl 中,如何从文件中删除 ^M?

如何从 svg 中的所有点知道路径的 m 或 M 点?(使用 raphael.js)

如何获得从 awakeFromNib 到 mainViewController.m 的对象高度?

如何使用 Java 从独立于平台的文本文件中删除 ^M 字符?