小编Kri*_*her的帖子

Json.net反序列化列表提供重复项

我刚开始使用Newtonsoft.Json(Json.net).在我的第一个简单测试中,我在反序列化通用列表时遇到了问题.在下面的代码示例中,我序列化了一个对象,其中包含三种类型的简单整数列表(属性,成员var和数组).

生成的json看起来很好(列表转换为json数组).但是,当我将json反序列化为相同类型的新对象时,所有列表项都是重复的,期望数组.我已经通过第二次序列化来说明了这一点.

从搜索周围,我已经读到可能有一个"私人"支持字段到解串器也填充的列表.

所以我的问题是:在下列情况下是否有(最好是简单的)避免重复项目的方法?

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

namespace JsonSerializeExample
{
    public class Program
    {
        static void Main()
        {
            var data = new SomeData();
            var json = JsonConvert.SerializeObject(data);
            Console.WriteLine("First : {0}", json);
            var data2 = JsonConvert.DeserializeObject<SomeData>(json);
            var json2 = JsonConvert.SerializeObject(data2);
            Console.WriteLine("Second: {0}", json2);
        }
    }

    public class SomeData
    {
        public string SimpleField;
        public int[] IntArray;
        public IList<int> IntListProperty { get; set; }
        public IList<int> IntListMember;

        public SomeData()
        {
            SimpleField = "Some data";
            IntArray = new[] { 7, …
Run Code Online (Sandbox Code Playgroud)

c# json json.net

16
推荐指数
3
解决办法
6201
查看次数

标签 统计

c# ×1

json ×1

json.net ×1