c# - 我想将 ac# 列表转换为 JArray
问题描述
如果我使用 JARRAY.FROMOBJECT 我得到一个空的骨架 json,有人可以帮我告诉我如何将列表转换为 jarray。谢谢
class EGTenantCreated
{
internal string id { get; set; }
internal string subject { get; set; }
internal EGData data { get; set; }
internal string eventType { get; set; }
internal string eventTime { get; set; }
internal string dataVersion { get; set; }
internal string metadataVersion { get; set; }
internal string topic { get; set; }
}
class EGData
{
internal string TenantId { get; set; }
internal string TenantName { get; set; }
internal string AdministratorEmail { get; set; }
internal string ProductId { get; set; }
internal string PackageInstanceId { get; set; }
internal string CorrelationId { get; set; }
}
public List<EGTenantCreated> UpdateEGTenant()
{
DateTime date = new DateTime();
string tenantName = "Tenant" + date.Day.ToString() + date.Month.ToString() +
date.Year.ToString() + "_"
+ date.Hour.ToString() + date.Minute.ToString();
string adminEmail = "user" + date.Day.ToString() + date.Month.ToString() +
date.Year.ToString() + "_"
+ date.Hour.ToString() + date.Minute.ToString() + "@testmail.com";
EGData egData = new EGData();
egData.TenantId = Guid.NewGuid().ToString();
egData.TenantName = tenantName;
egData.AdministratorEmail = adminEmail;
egData.ProductId = "Erp";
egData.PackageInstanceId = "522b0dc0-5db9-437d-97cc-cd4c742b1b22";
egData.CorrelationId = Guid.NewGuid().ToString();
EGTenantCreated egTenant = new EGTenantCreated();
egTenant.id = Guid.NewGuid().ToString();
egTenant.subject = "/DeploymentRegistry/TenantCreated";
egTenant.eventType = "TenantCreated";
egTenant.eventTime = "2019-10-04T20:02:54.9411815Z";
egTenant.dataVersion = "1.0.0";
egTenant.metadataVersion = "1";
egTenant.topic = "topictest";
egTenant.data = egData;
List<EGTenantCreated> list = new List<EGTenantCreated>();
list.Add(egTenant);
return list;
}
var list = UpdateEGTenant();
var jArray = JArray.FromObject(list); //here i get an empty json
这是我得到错误的地方,当我打印 jArray.ToString() 时,我得到一个空的 json 骨架,并且没有将我的列表转换为预期的 jarray 对象。这是真实的代码。
解决方案
您看到的问题是因为您的属性是internal
. 要解决这个问题,您可以创建它们public
和类internal
(如果没有指定修饰符,这是默认值),或者您可以将JsonProperty
属性放在每个属性上:
class EGTenantCreated
{
[JsonProperty]
internal string id { get; set; }
[JsonProperty]
internal string subject { get; set; }
[JsonProperty]
internal EGData data { get; set; }
[JsonProperty]
internal string eventType { get; set; }
[JsonProperty]
internal string eventTime { get; set; }
[JsonProperty]
internal string dataVersion { get; set; }
[JsonProperty]
internal string metadataVersion { get; set; }
[JsonProperty]
internal string topic { get; set; }
}
class EGData
{
[JsonProperty]
internal string TenantId { get; set; }
[JsonProperty]
internal string TenantName { get; set; }
[JsonProperty]
internal string AdministratorEmail { get; set; }
[JsonProperty]
internal string ProductId { get; set; }
[JsonProperty]
internal string PackageInstanceId { get; set; }
[JsonProperty]
internal string CorrelationId { get; set; }
}
推荐阅读
- ios - Repost Swift:在 AR Face 网格上正确显示顶点标签
- javascript - 重写方法以将事件处理程序附加到每个调用
- boost - 使用 Boost.Beast WebSocket 时测量客户端备份
- react-native - 如何在 React Native 中启动 Redux
- javascript - Find duplicate objects in array
- ios - 如何在 Flutter 中禁用 InAppWebView 的缩放?
- reactjs - 使用 if 语句获取 - 条件获取问题
- python - pymongo 在可能包含重复项的 mongo 数据库中插入许多文档
- android - 如何使用处理程序将消息从一个线程发送到fargment线程
- python - 如何在 Android 上将 Pytesseract 用于 Kivy 应用程序?