• 初次使用json数据格式,发生的常识性错误。


    json待序列化的类型的,必须指定特性:    <System.Runtime.Serialization.DataContract()>

    如果没有指定,会提示,反序列化发生错误。

    反序列化Json出现错误。无法序列化类型“测试项目.Module1+products”。请考虑将其标以 DataContractAttribute 特性,并将其所有要序列化的成员标以 DataMemberAttribute 特性。如果类型为集合,则请考虑将其标以 CollectionDataContractAttribute 特性。有关其他受支持的类型,请参见 Microsoft .NET Framework 文档。
    

      

    对应的属性,也必须显示指定:<System.Runtime.Serialization.DataMember()>,如果没有显示指定,不会有异常抛出,但是确不能获取指定的值。

    对于.net 4.0 需要引用

    System.Runtime.Serialization

    完成代码:

      Shared Function Json2Obj(ByVal json As String, ByVal t As Type) As Object
            Try
                Dim s = New System.Runtime.Serialization.Json.DataContractJsonSerializer(t)
    
                Using m As New IO.MemoryStream(System.Text.UTF8Encoding.UTF8.GetBytes(json))
                    Return s.ReadObject(m)
                End Using
    
            Catch ex As Exception
                Throw 
            End Try
        End Function
    
    
        <System.Runtime.Serialization.DataContract()>
        Public Class products
            Public Sub New()
                Me.product_results = String.Empty
                Me.category_results = String.Empty
                Me.results_footer = String.Empty
            End Sub
            <System.Runtime.Serialization.DataMember()>
            Public Property product_results As String
            <System.Runtime.Serialization.DataMember()>
            Public Property category_results As String
            <System.Runtime.Serialization.DataMember()>
            Public Property results_footer As String
        End Class
    

      

    第一次使用走了不少弯路。

    相关资源:

    可以把json格式,转换为 html 

    http://json.bloople.net/

  • 相关阅读:
    第二阶段冲刺04
    找水王
    第二阶段冲刺03
    第二阶段冲刺02
    第二阶段冲刺01
    学习进度12
    梦断代码阅读笔记07
    第一阶段意见评论
    学习进度11
    求素数p的原根
  • 原文地址:https://www.cnblogs.com/zqonline/p/2134870.html
Copyright © 2020-2023  润新知