相关疑难解决方法(0)

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
查看次数

Newtonsoft反序列化其他列表中的列表时反序列化重复元素

我有一个对象列表 (A),每个对象都包含一个对象列表 (B)。我对 As 列表进行了序列化,没有出现任何问题,但是当我对 As 进行反序列化时,每个 A 内的 B 列表的 B 数量是原始数量的两倍。为什么会发生这种情况?

        var sample = new List<A>
        {
            new A
            {
                Flag = true,
                Amount = 10,
                Bs = new List<B>
                {
                    new B {Amount = 4, Id = Guid.NewGuid()},
                    new B {Amount = 6, Id = Guid.NewGuid()}
                }
            },
            new A
            {
                Flag = true,
                Amount = 20,
                Bs = new List<B>
                {
                    new B {Amount = 4, Id = Guid.NewGuid()},
                    new B {Amount = 6, Id = …
Run Code Online (Sandbox Code Playgroud)

c# json.net deserialization

5
推荐指数
1
解决办法
2261
查看次数

标签 统计

c# ×2

json.net ×2

deserialization ×1

json ×1