VB.NET中的JSON序列化技术

VB.NET中的JSON序列化技术,json,vb.net,Json,Vb.net,以下序列化方法之间有什么区别 第一种方法 序列化对象(列表或数据表) 输出是 i、 (3)[目的,目的,目的] 第二种方法 Dim parent=Prtdata Dim lGridColumns=新的,带有{ Key.data=parent } Dim设置=新JsonSerializerSettings Setting.PreserveReferencesHandling=PreserveReferencesHandling.Objects Dim jsonObject=JsonConvert

以下序列化方法之间有什么区别

  • 第一种方法

    序列化对象(列表或数据表)

  • 输出是

    i、 (3)[目的,目的,目的]

  • 第二种方法
  • Dim parent=Prtdata
    Dim lGridColumns=新的,带有{
    Key.data=parent
    }
    Dim设置=新JsonSerializerSettings
    Setting.PreserveReferencesHandling=PreserveReferencesHandling.Objects
    Dim jsonObject=JsonConvert.SerializeObject(lGridColumns,Formatting.Indented)
    
    返回jsonObject作为第一条评论,您可以在NewtonSoft.json网站上找到,在我的回答中,我只是提供了一个更详细的评论版本

    第一个场景是序列化实现的内容(例如:list,array),它将由Json中的数组表示,例如:

    [{ "property": "value", "id": 0 }, {"property": "value", "id": 1}]
    
    对于第二种情况,您正在以不同的方式执行一些操作,例如,您在中提供了,这也将预先保留在正在序列化的对象中所做的任何引用,例如:

    [{"$id": 1, "title": "item1"}, {"$id": 2, "title": "item2", "previous": { "$ref": 1 }]
    
    这将确保反序列化时,第二个对象将在属性
    previous
    内包含对第一个对象的引用

    另一个不同的做法是提供,它将创建一个更易于阅读的json文档,具有换行和缩进。之前的Json将变成类似于以下内容:

    [{
        "$id": 1,
        "title": "item1"
    },
    {
        "$id": 2,
        "title": "item2",
        "previous": {
            "$ref": 1
        }
    }]
    
    最后一个最大的区别是,在上一个示例中,您正在序列化单个对象,导致其公共属性被序列化,例如:

    {
        "data": [
            ...
        ]
    }
    

    其中,
    data
    是要序列化的对象的属性。

    对于第一种情况,您正在创建一个数组(因为您正在序列化列表或数组),第二种情况是使用单独属性中的数据创建一个json对象。这在许多语言中都是一样的,所以我真的不明白你在这里问的问题?你刚刚回答了它,你能把它作为一个答案贴出来吗?好的,我试过了,试图提供比评论中更多的信息;)这正是我想要的:)