2014-02-24 86 views
0

我的JSON允许空值,并继续

{ 

"name": "username", 
    "items": { 
    "myitem": { 
     "icon": "myitem.jpg", 
    "myitem2": { 
     "icon": "myitem2.jpg", 
} 

我的代码

Dim request As HttpWebRequest 
    Dim response As HttpWebResponse = Nothing 
    Dim reader As StreamReader 

    Try 

     request = DirectCast(WebRequest.Create("http://myjson.com/json"), HttpWebRequest) 

     response = DirectCast(request.GetResponse(), HttpWebResponse) 
     reader = New StreamReader(response.GetResponseStream()) 

     Dim rawresp As String 
     rawresp = reader.ReadToEnd() 

     Dim jResults As JObject = JObject.Parse(rawresp) 
     name.Text = If(jResults2("name") Is Nothing, "", jResults2("name").ToString()) 
     myitem.Text = If(jResults2("items")("myitem")("icon") Is Nothing, "", jResults2("items")("myitem")("icon").ToString()) 
     myitem2.Text = If(jResults2("items")("myitem2")("icon") Is Nothing, "", jResults2("items")("myitem2")("icon").ToString()) 



     'Catch ex As Exception 
    Catch ex As System.Net.WebException 
     MsgBox(ex.ToString) 
    Finally 
     If Not response Is Nothing Then response.Close() 

    End Try 

IM有我的JSON一个问题,有时也可以是这样的

{ 

"name": "username", 
    "items": { 
    "myitem2": { 
     "icon": "myitem2.jpg", 
} 

当我做如果myitem不在json字符串中,则检查为null,然后将名称放在name.text中,但myitem2未处理或甚至放置在myitem2.Text中

任何帮助解决这一问题将是短期巨大的,如果myitem为null,我仍然希望它继续处理项目

+0

JSON无效,您的JSON RootObject类是什么样的? – Dayan

回答

0

的JSON在你的例子是无效的休息,你可以访问这个网站验证您的JSON:http://jsonlint.com/

我想你想要的东西有如下所示:

{ 
    "name": "username", 
    "items": { 
     "myitem": { 
      "icon": "myitem.jpg" 
     }, 
     "myitem2": { 
      "icon": "myitem2.jpg" 
     } 
    } 
} 

如果这是正确的,那么你的这个JSON RootObject会看起来像这样:

public class Myitem 
{ 
    public string icon { get; set; } 
} 

public class Myitem2 
{ 
    public string icon { get; set; } 
} 

public class Items 
{ 
    public Myitem myitem { get; set; } 
    public Myitem2 myitem2 { get; set; } 
} 

public class RootObject 
{ 
    public string name { get; set; } 
    public Items items { get; set; } 
} 
+0

是的抱歉,我没有正确输入。但我不认为我理解为我发布在我的代码它'name.Text = If(jResults2(“name”)是Nothing,“”,jResults2(“name”)。ToString()) myitem.Text = If (jResults2(“items”)(“myitem”)(“icon”)is Nothing,“”,jResults2(“items”)(“myitem”)(“icon”))ToString()) myitem2.Text = If (jResults2(“items”)(“myitem2”)(“icon”)是Nothing,“”,jResults2(“items”)(“myitem2”)(“icon”)。ToString())'我怎么能设置它所以当它通过json时,如果缺少某些东西,它会跳过它并继续其余部分 – ids

相关问题