C# (Xamarin) 如何将 JSON 写入数组?

Posted

技术标签:

【中文标题】C# (Xamarin) 如何将 JSON 写入数组?【英文标题】:C# (Xamarin) How to write JSON to array? 【发布时间】:2021-04-19 20:34:18 【问题描述】:

我有 JSON 格式的输出。


  "id": null,
  "kkt": [],
  "CallNumber": null,
  "CallDuration": null,
  "CallDurationFormat": "00:00:00",
  "CallDateTick": 0,
  "CallDate": "1970-01-01T00:00:00Z",
  "CallType": null,
  "CallDescription": "01/01/1970 12:00 a. m. -  | Duración: 00:00:00"

我想像这样将调用规范写入 kkt 数组:


  "id": null,
  "kkt": [


  "CallNumber": null,
  "CallDuration": null,
  "CallDurationFormat": "00:00:00",
  "CallDateTick": 0,
  "CallDate": "1970-01-01T00:00:00Z",
  "CallType": null,
  "CallDescription": "01/01/1970 12:00 a. m. -  | Duración: 00:00:00"


],

为了实现这一点,我创建了我想要序列化的类调用,但我不知道如何创建 List 以便规范在数组中。

有人知道我如何编写 List 或做其他事情来实现调用规范将在 kkt 数组中吗?

感谢您的建议!


类:

CallLogModel:https://pastebin.com/nLeLszW0

通话记录:https://pastebin.com/fvS6s4SQ

ICallLog:https://pastebin.com/tz2uxDXw

来电:https://pastebin.com/EWFgm2jx

LoadCallLog() 方法:https://pastebin.com/VATQnGG5

【问题讨论】:

请在发帖前阅读How to Ask。相关代码应发布在问题的正文中,而不是作为外部网站的链接。 json2csharp.com 将从 json 数据集生成 C# 模型 正如其他cmet所说,当问题中所有相关代码都可用时,回答您的问题要容易得多。根据我从您的问题中了解到的情况,您似乎正在使用 c# 属性并将它们序列化为 json,但您想将它们序列化为 json 数组。为此,您可以使用 Dictionary() 而不是 c# 属性。 【参考方案1】:

尝试如下改变:

Calls模特:

public class Calls 


    public string id;
    public List<CallLogModel> kkt;

ICallLog接口:

public interface ICallLog

    List<CallLogModel> GetCallLogs();

然后在您的 LoadCallLog() 方法中,您需要将您查询的值添加到 Calls 模型中,例如:

var Logg = DependencyService.Get<ICallLog>().GetCallLogs();

if (!(Preferences.ContainsKey("GUID")))
   
       Preferences.Set("GUID", App.newUser1);
   
 var a = Preferences.Get("GUID", "hovno"); //if this is the id of Calls model
 Calls calls = new Calls();
 calls.id = a;
 calls.kkt = Logg;
 var serialized = JsonConvert.SerializeObject(calls);

【讨论】:

以上是关于C# (Xamarin) 如何将 JSON 写入数组?的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 表单将 Json 数组转换为 C# 并返回 JSON 数组

如何将数据框中的行数写入 JSON 文件?

xamarin android如何将Java.Lang.Object类型转成C#类型

从 JSON 下载信息(Xamarin C#)

在 Xamarin.forms C# 中显示带有 JSON 数据的列表

如何在json单引号中写入c#字符串