如何在C#中读取解析JSON字符串

亚西尔·阿斯科拉

我正在尝试在C#中读取JSON字符串(实际上,它更长,但只是为了显示结构...),这是我收到的字符串。

42["cti-agentes","{
    \"6139\":{
        \"id_agents_interface\":\"453\",
        \"agent\":\"6139\",
        \"interface\":\"contact1\",
        \"logintime\":\"2019-11-26 15:08:46\",
        \"pausetime\":\"2019-12-31 13:28:36\",
        \"paused\":\"si\",
        \"id_pausa\":null,
        \"invalid\":\"no\",
        \"invalidtime\":null,
        \"fullcontact\":\"contact1\",
        \"textoterminal\":\"contact1\"
        },
    \"6197\":{
        \"id_agents_interface\":\"5743\",
        \"agent\":\"6197\",
        \"interface\":\"contact1\",
        \"logintime\":\"2020-01-16 10:16:17\",
        \"pausetime\":null,
        \"paused\":\"no\",
        \"id_pausa\":null,
        \"invalid\":\"no\",
        \"invalidtime\":null,
        \"fullcontact\":\"contact2\",
        \"textoterminal\":\"contact2\"
        }
}"]

字符串应该是“代理”的数组。6139是具有所有属性的一种代理,而6197是另一种代理。在此示例中,只有两个代理,但是在实际字符串中,有许多代理。

我对JSON格式不是很熟悉,但是我尝试在此网站https://jsonformatter.curiousconcept.com/中对其进行验证,但是我无法使其正常工作,因此也许我必须稍微“清理”字符串解析之前有点吗?希望能对您有所帮助。

应用程序应该能够读取JSON字符串并将其解析为.NET对象,我尝试了JsonConvert.DeserializeObject()JArray.Parse()函数,但它们对我来说都不起作用。

有什么帮助吗?

拖放

第一部分似乎是一个int,您可以通过多种方式将其删除:

var withoutNumberPrefix = new string(input.SkipWhile(c=> Char.IsDigit(c)).ToArray());
var fixedSize = input.Substring(2, input.Length - 2);
var always42 = input.TrimStart(new[] { '4', '2' });

完成后,您将拥有一个List<string>,其中第一个值为类型,第二个为该类型的“数组”。

var listResults = JsonConvert.DeserializeObject<string[]>(fixedSize);

您可以反序列化第二部分:

var result = JsonConvert.DeserializeObject<Dictionary<int,CtiAgentes>>(listResults[1]);

转换为匹配类型,使用过去使用这些工具的简单副本创建的类型
如何从JSON字符串自动生成C#类文件

public partial class CtiAgentes
{
    [JsonProperty("id_agents_interface")]
    public int IdAgentsInterface { get; set; }

    [JsonProperty("agent")]
    public int Agent { get; set; }

    [JsonProperty("interface")]
    public string Interface { get; set; }

    [JsonProperty("logintime")]
    public DateTimeOffset Logintime { get; set; }

    [JsonProperty("pausetime")]
    public DateTimeOffset? Pausetime { get; set; }

    [JsonProperty("paused")]
    public string Paused { get; set; }

    [JsonProperty("id_pausa")]
    public object IdPausa { get; set; }

    [JsonProperty("invalid")]
    public string Invalid { get; set; }

    [JsonProperty("invalidtime")]
    public object Invalidtime { get; set; }

    [JsonProperty("fullcontact")]
    public string Fullcontact { get; set; }

    [JsonProperty("textoterminal")]
    public string Textoterminal { get; set; }
}

在此Live演示中,您将注意到除了“删除42”之外没有任何字符串操作。不反斜杠不报价被修改。这是在字符串中硬编码的JSON将硬编码JSON字符串存储到变量中

诺塔好处:我用DateTimeOffsetPausetimeLogintime,因为那里有在输入端没有时区。您可以使用Datetime,但是很高兴知道它是gmt还是本地化数据。

对于所有空值,我选择了对象。因为我不知道类型 数据迟早会蓬勃发展。可以假设id是一个int值,而无效时间是一个DateTimeOffSet值,但是我无法做出决定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C#中解析示例字符串

来自分类Dev

如何在C#中解析示例字符串

来自分类Dev

如何在C#中读取动态返回的JSON字符串?

来自分类Dev

如何在C#中解析复杂的嵌套JSON字符串?

来自分类Dev

如何在C#中基于字符串的长度读取子字符串

来自分类Dev

如何从C#中的Json字符串读取特定的Json对象?

来自分类Dev

如何在R中读取JSON字符串的CSV

来自分类Dev

如何在C#中以字符串形式读取“ IBuffer”类型的值?

来自分类Dev

如何在C#中读取指针的值并将其转换为字符串?

来自分类Dev

无法在c#中解析此Json字符串

来自分类Dev

在C#中解析Json字符串

来自分类Dev

解析和验证C#中的JSON字符串

来自分类Dev

如何在Inno Setup中解析JSON字符串?

来自分类Dev

如何在Android中解析JSON字符串?

来自分类Dev

如何在Android中解析JSON字符串

来自分类Dev

如何在Delphi中解析JSON字符串?

来自分类Dev

如何在python中解析json字符串?

来自分类Dev

如何在C#中解析Odata过滤器字符串?

来自分类Dev

如何在C#中解析此日期字符串

来自分类Dev

如何在C ++中读取大小未知的字符串

来自分类Dev

如何在C ++中读取以空格分隔的字符串?

来自分类Dev

如何在Python中解析C格式的字符串?

来自分类Dev

如何在 C# 字符串格式化程序中转义 Json 字符串中的花括号

来自分类Dev

如何在c#/ NETMF中创建JSON字符串?

来自分类Dev

如何在C#字符串中编写json格式?

来自分类Dev

如何在字符串C#中获取单词

来自分类Dev

如何在c#中更改字符串格式

来自分类Dev

XML错误:有多个根元素,如何在asp.net c#中读取XML字符串变量?

来自分类Dev

如何从文本文件中读取JSON字符串进行解析?

Related 相关文章

热门标签

归档