【发布时间】:2018-11-12 05:56:23
【问题描述】:
对这篇长文深表歉意。我需要为帖子创建以下 json 格式以在 c# 中休息 api。以下调用有效,我已在 Postman 中成功使用,将其添加到目标系统。
{
"item": {
"attrs": {
"attr": [{
"name": "IP_Category",
"value": "Miscellaneous"
}, {
"name": "Description",
"value": "Picture of Rabbit"
}, {
"name": "Title",
"value": "A Rabbit"
}
]
},
"resrs": {
"res": [{
"filename": "Rabbit.jpg",
"base64": "/9j/4AAQSkZJR"
}
]
},
"acl": {
"name": "Submitter"
},
"entityName": "IP_Document"
}
}
根据我所做的研究,我需要复制并“粘贴特殊”到 Visual Studio 中的新类文件中,以便它可以基于 json 格式创建类对象(非常酷!)。这就是它所创造的:
namespace BasicWebApp
{
public class Rootobject
{
public Item item { get; set; }
}
public class Item
{
public Attrs attrs { get; set; }
public Resrs resrs { get; set; }
public Acl acl { get; set; }
public string entityName { get; set; }
}
public class Attrs
{
public Attr[] attr { get; set; }
}
public class Attr
{
public string name { get; set; }
public string value { get; set; }
}
public class Resrs
{
public Re[] res { get; set; }
}
public class Re
{
public string filename { get; set; }
public string base64 { get; set; }
}
public class Acl
{
public string name { get; set; }
}
}
问题一:为什么 vs 将 res json 对象重命名为 Re 类?是c#中的保留字吗?
问题 2:我知道我必须以这种方式嵌套东西,但我有两层深,不知道要编码什么?
var model = new Rootobject();
model.item = new Item
{
attrs = new Attrs
{
attr = new List<Attr>
{
**now what??**
}
}
}
【问题讨论】:
-
res 不是保留字,但是您的 Json 到 C# 转换器(在本例中为 Visual Studio)认为
res是复数re的 -
对于您的问题“res JSON object to class Re”,Visual Studio 将“Re”视为“Res”的单数形式。同样,您可以使用 Attr 和 Attrs 进行检查。
-
对于您的问题 2,我个人的建议是使用第三方库,例如 Newtonsoft,这会让事情变得简单。