在序列化之前我应该​​如何存储这些数据?

时间:2015-08-13 11:16:47

标签: c# json

对不起,如果我的问题有点乏味,我会尝试解释一下。

我目前正在处理一个小型应用程序,我想使用JSON将我的数据存储在本地作为一种保存/加载功能。

目前我的Json看起来像这样:

update QuotationInfo t1
set SupplierId = (select SupplierId
    from ContractInfo t2
    where t2.QuotationId = t1.QuotationId)

我使用字典存储项目名称和价格,我想添加更多属性。然而我的问题是我需要用整数遍历我的字典。所以我的问题是,在序列化之前我应该​​将数据存储到什么位置?

提前致谢!

2 个答案:

答案 0 :(得分:2)

您应该使用表示要存储的数据的属性创建类。

class MyData
{
    public string Name {get; set; }
    public double Price { get; set; }
}

并用例如序列化/反序列化它。 Json.NET

答案 1 :(得分:0)

如果我正确理解您的问题,您应该使用listclass个实例。

我不知道你要存储什么,但我可以想象它是一个有名字和价格的“产品”。因此,您使用properties“名称”和“价格”创建一个“产品”类。然后,您可以将所有“产品”存储在列表中,并轻松地将此列表序列化为JSON。我可以推荐你fastJSON library

这是一个小代码示例:

public class Product
{
    private string _name = "";
    public string Name
    {
        get
        {
            return _name;
        }
        set
        {
            _name = value;
        }
    }

    private float _price = 0.0;
    public float Price
    {
        get
        {
            return _price;
        }
        set
        {
            _price = value;
        }
    }

    public Product(string name, float price)
    {
        this.Name = name;
        this.Price = price;
    }
}

这里是一个生成JSON的示例控制台应用程序(使用fastJSON)。

class Program
{
    static void Main(string[] args)
    {
        // create a list of products
        List<Product> products = new List<Product>();
        // append, modify, delete list entries
        products.Add(new Product("asdas", 0.2));
        // serialize them and output text to console
        Console.WriteLine(fastJSON.JSON.Instance.ToJSON(products));
    }
}

现在,您可以轻松地向Product类添加属性。

免责声明:所有代码都是未经测试的,我这里没有c#编译器,所以请耐心等待。这只是一个例子。