【问题标题】:visual basic .net deserializingvisual basic .net 反序列化
【发布时间】:2016-11-20 10:27:30
【问题描述】:

我如何像这样反序列化 json 文件:

{
  "misterislukelis": {
        "id": 44816005,
        "name": "MisterisLukelis",
        "profileIconId": 1391,
        "summonerLevel": 30,
        "revisionDate": 1479601967000
 }

}

从我收集到的这是 json “字典”,但我不知道我是否像普通的 json 文件一样阅读它

例如。正常的json:

[ {
   "application_id":"1",
   "application_package":"abc"
  },
  { 
     "application_id":"2",
     "application_package":"xyz"
  } ]

我不知道他们的行为不同,因为就像我看过的一样,每个人都只是做同样的事情,但对我来说它并没有真正起作用

我的班级:

Class summoner                               'class opening
    Public Property id As Integer            'summoner's id
    Public Property name As String           'summoner's name
    Public Property profileIconId As Integer 'profile icon id
    Public Property summonerLevel As Integer 'summoner's level
End Class                                    'end of a class

然后这应该反序列化 json:

Dim ser As JavaScriptSerializer = New JavaScriptSerializer()         
Dim jsonData As String = readData(URLadress)                         'get      json file in to txt(i have function fo it, it works i triple checked)
Dim summonerInfo As summoner = ser.Deserialize(Of summoner)(jsonData) 'deserialize json
TextBox1.Text = summonerInfo.summonerLevel 'print out summoner level

我看起来这应该可以正常工作,但我得到的只是整数应该是 0,字符串是“”,我真的不知道问题出在哪里

【问题讨论】:

    标签: .net json deserialization


    【解决方案1】:

    第二个例子是一个 json 数组,可以很好地与 Deserialize json 配合使用。

    Dim webtest As String = "[ {
       ""application_id"":""1"",
       ""application_package"":""abc""
      },
      { 
         ""application_id"":""2"",
         ""application_package"":""xyz""
      } ]"
            Dim serializer As New JavaScriptSerializer()
            Dim webtestdeserialized As New List(Of cSummoner)
            webtestdeserialized = serializer.Deserialize(Of List(Of cSummoner))(webtest) '(serializedResult)
    

    JSON 对象也有问题。 JSON 对象我在一个对象中得到它,但不在 cSummoner 列表中。

    Dim webtest As String = "{
            ""id"": 44816005,
            ""name"": ""MisterisLukelis"",
            ""profileIconId"": 1391,
            ""summonerLevel"": 30,
            ""revisionDate"": 1479601967000
     }"
            Dim serializer As New JavaScriptSerializer()
            Dim webtestdeserialized As Object
            webtestdeserialized = serializer.DeserializeObject(webtest) 
    

    希望能帮到你。

    【讨论】:

      猜你喜欢
      • 2015-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多