我有一个JSON字符串,如:
var json = "{\"Attributes\": {\"name\":\"S1\", \"quantity\":\"100\"}}";
我想设计一个相同的类;在C#中为JSON字符串创建类时如何处理?
答案 0 :(得分:4)
如果您使用的是Visual Studio 2012,请进入菜单 EDIT - >选择性粘贴 - >将JSON粘贴为CLASES 。
你有效的JSON应该是这样的(你应该在将\
复制到剪贴板之前删除它):
{"Attributes": {"name":"S1", "quantity":"100"}}
生成的类:
public class Rootobject
{
public Attributes Attributes { get; set; }
}
public class Attributes
{
public string name { get; set; }
public string quantity { get; set; }
}
示例用法(请注意,\
仍在此处,以便拥有有效的代码语法):
var json = "{\"Attributes\": {\"name\":\"S1\", \"quantity\":\"100\"}}";
var json_serializer = new JavaScriptSerializer();
Rootobject dc = json_serializer.Deserialize<Rootobject>(json);
答案 1 :(得分:0)
你的问题不清楚,但我认为你的意思是将JSON解析为C#对象?使用JSON.NET之类的东西可以做到这一点:
public class Attributes
{
[JsonProperty("name")]
public String Name { get; set; }
[JsonProperty("quantity")]
public Int32 Quantity { get; set; }
}
public class MyObject
{
[JsonProperty("Attributes")]
public Attributes Attributes { get; set; }
}
var myObj = JsonConvert.DeserializeObject<MyObject>(json);
或者你可以更广泛地让JSON.NET为你做这件事:
var obj = JsonConvert.DeserializeObject<dynamic>(
"{ \"Attributes\": {\"name\":\"S1\", \"quantity\":\"100\"}}"
);
Console.WriteLine(obj.Attributes["name"]) // S1
Console.WriteLine(obj.Attributes["quantity"]) // 100
答案 2 :(得分:0)
查看命名空间System.Runtime.Serialization
,你可以找到有用的类(de)序列化JSON那里
你也可以阅读这个类似的问题(在发帖前搜索并没有真正受到伤害):
How do I represent this complex json document as a C# object?