如何从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
类型语法吗?如果我运行代码,我会为 a
和 b
得到 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?
如何从 svg 中的所有点知道路径的 m 或 M 点?(使用 raphael.js)