如何从包含C#中的键值对的字符串中初始化对象

罗恩

该对象有139个字段;字符串初始值设定项可能具有部分或全部这些字段。它的格式如下:“ FirstName”:“ Bart”,“ LastName”:“ Simpson”,“ Company”:“ Fat Tony's”,“ Address”:“ 55 Maple Drive”等。我只需要查找以下字段即可这个:

if (initializerString.contains("FirstName:") 
   FirstName="get the next series of chars until the ", or end of string

等等。但是,有没有更紧凑的方法可以做到这一点?

康拉德·克拉克(Conrad Clark)

看起来您的格式与JSON非常相似(实际上,除了没有花括号外),因为人们评论说,使用JSON.NET会更好。

如果您完全控制此字符串,只需将其转换为json并反序列化即可:

JsonConvert.DeserializeObject<YourClass>(yourString);

在反序列化数据时,它将自动设置正确的属性。

如果您无法控制这种格式,并且无论如何都需要解析它,只需放上花括号即可:

JsonConvert.DeserializeObject<YourClass>("{" + yourString + "}");

如果你没有为这个特定的类,你也可以更换YourClassDictionary<string,object>

您会发现该库为Newtonsoft.Json,并且我相信它是处理JSON数据最流行的库。

我已经制作了一个有效的示例,因此您可以在操作中看到它(请注意,我保留了您的字符串格式,但是请尝试使用直接的json):

using System;
using System.Linq;
using System.Collections.Generic;
using Newtonsoft.Json;

public class Program
{
    public class Information
    {
        public string FirstName{get;set;}
        public string LastName{get;set;}
        public string Company{get;set;}
        public string Address{get;set;}
    }

    public static void Main()
    {
        string myObject =  "\"FirstName\":\"Bart\",\"LastName\":\"Simpson\",\"Company\":\"Fat Tony's\",\"Address\":\"55 Maple Drive\"";
        var converted = JsonConvert.DeserializeObject<Dictionary<string, object>>("{"+myObject+"}");
        var converted2 = JsonConvert.DeserializeObject<Information>("{"+myObject+"}");
        Console.WriteLine(String.Join("\n", converted.Select(c=> c.Key + ": " + c.Value)));
        Console.WriteLine(converted2.FirstName);
    }
}

这是一个奖金小提琴:

https://dotnetfiddle.net/fudUYZ

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java中的字符串初始化和连接

来自分类Dev

C ++中的数组初始化(不是字符串)

来自分类Dev

如何初始化字符串?

来自分类Dev

如何最好地初始化C ++中的字符串向量?

来自分类Dev

在Java中动态初始化字符串

来自分类Dev

如何更改静态链接库中的const字符串数组的Visual Studio C ++初始化序列

来自分类Dev

在C中初始化字符串的结尾

来自分类Dev

Scala映射初始化中的类型不匹配错误(字符串到对象)

来自分类Dev

如何在类中声明和初始化字符串数组?

来自分类Dev

如何在Swift中从字符串实例化类和初始化?

来自分类Dev

在类函数中初始化字符串数组

来自分类Dev

在结构体中初始化字符串对象

来自分类Dev

如何在Google测试中为多个测试初始化常量字符串?

来自分类Dev

Java中的字符串初始化

来自分类Dev

如何改善C#中的类对象初始化?

来自分类Dev

如何在Julia中定义和初始化二维字符串数组?

来自分类Dev

如何防止在C#中反序列化期间初始化JSON字符串中不存在的属性?

来自分类Dev

在C中动态初始化字符串数组

来自分类Dev

Java中的字符串初始化和连接

来自分类Dev

如何最好地初始化C ++中的字符串向量?

来自分类Dev

在python中是否需要字符串初始化?

来自分类Dev

如何在C#中初始化字符串数组列表?

来自分类Dev

如何从包含初始化程序的字符串创建对象

来自分类Dev

在C#中初始化不包含值的字典

来自分类Dev

在结构体中初始化字符串对象

来自分类Dev

在结构体中初始化字符串对象(II)

来自分类Dev

在C ++中初始化字符串

来自分类Dev

如何改善C#中的类对象初始化?

来自分类Dev

如何使用 Partial 类 WPF C# 中的控件初始化字符串变量?

Related 相关文章

  1. 1

    Java中的字符串初始化和连接

  2. 2

    C ++中的数组初始化(不是字符串)

  3. 3

    如何初始化字符串?

  4. 4

    如何最好地初始化C ++中的字符串向量?

  5. 5

    在Java中动态初始化字符串

  6. 6

    如何更改静态链接库中的const字符串数组的Visual Studio C ++初始化序列

  7. 7

    在C中初始化字符串的结尾

  8. 8

    Scala映射初始化中的类型不匹配错误(字符串到对象)

  9. 9

    如何在类中声明和初始化字符串数组?

  10. 10

    如何在Swift中从字符串实例化类和初始化?

  11. 11

    在类函数中初始化字符串数组

  12. 12

    在结构体中初始化字符串对象

  13. 13

    如何在Google测试中为多个测试初始化常量字符串?

  14. 14

    Java中的字符串初始化

  15. 15

    如何改善C#中的类对象初始化?

  16. 16

    如何在Julia中定义和初始化二维字符串数组?

  17. 17

    如何防止在C#中反序列化期间初始化JSON字符串中不存在的属性?

  18. 18

    在C中动态初始化字符串数组

  19. 19

    Java中的字符串初始化和连接

  20. 20

    如何最好地初始化C ++中的字符串向量?

  21. 21

    在python中是否需要字符串初始化?

  22. 22

    如何在C#中初始化字符串数组列表?

  23. 23

    如何从包含初始化程序的字符串创建对象

  24. 24

    在C#中初始化不包含值的字典

  25. 25

    在结构体中初始化字符串对象

  26. 26

    在结构体中初始化字符串对象(II)

  27. 27

    在C ++中初始化字符串

  28. 28

    如何改善C#中的类对象初始化?

  29. 29

    如何使用 Partial 类 WPF C# 中的控件初始化字符串变量?

热门标签

归档