vb.net
Newtonsoft
json 串
大家知道JSON是以“键:值”的形式来出现的,在vb.net中使用的时候,一般会需要将对应项目的值取出来,这时可以使用 json对象.item('KEY1').item('KEY2').ITEM('KEY3').tostring 这种形式来取KEY1下KEY2下KEY3的VALUE
如果遇到数组的话就在相应的item后面加一组括号,里面写上数组中第几个元素(不晓得叫啥好,就是数组中第几个用大括号括起来的东西) 对象.item('KEY1').item(0)('KEY2').ITEM('KEY3').tostring
某item下面有几个值对或数组可在item('KEY')后面加.count 对象.item('KEY1').item('KEY2').conut
某数组中添加值对(可能说的不准确,好像是只有被大括号包起来的VALUE里面可以增加值) 对象.Item('items').Item(0).Add('ExtraItem', 'Extra Data Value')
移除值对 对象.item('items').item(0).remove('url')
下面是自己写的一个小例子对上面的情况进行一个补充 'vb.net中的json解析其实和vb6中用官方的vbjson访问方式基本一致'下面是其基本操作的举例'需要引用这两个东西,不晓得是否都是必需的Imports Newtonsoft.JsonImports Newtonsoft.Json.Linq Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click'Me.RichTextBox1.Text = '{ width: '200', frame: false, height: 130 ,bodyStyle:'background-color: #ffffcc;',buttonAlign:'right', items: [{ xtype: 'form', url: '/content.asp'},{ xtype: 'form2', url: '/content2.asp'}] }' Dim s As String = Me.RichTextBox1.Text'把P定义为Object然后用ctype将JsonConvert.DeserializeObject(json字符串)弄出来的东西转换成JObject,就可以得到Json对象了Dim p As Object = CType(JsonConvert.DeserializeObject(s), JObject) Dim str As String = '' '获取第一层共有几个值对 str = str & 'p.count:' & p.count & vbCrLf '获取第一层的items的KEY下面有几个值对 str = str & 'p.(''items'').count:' & p('items').count & vbCrLf '获取第一层的items的VALUE值 str = str & 'p(''items'').toString:' & p('items').ToString & vbCrLf '获取第一层的items下的数组的第一个用大括号括起来的那一串东西 str = str & 'p(''items'').item(0).ToString:' & p('items').item(0).ToString & vbCrLf '获取第一层的items下的数组的第一个用大括号括起来的那一串东西里面的名为url的KEY下面的值 str = str & 'p(''items'').item(0)(''url'').ToString:' & p('items').item(0)('url').ToString & vbCrLf '在第一层的items下的数组的第一个用大括号括起来的那一串东西里面添加一个值对 str = str & 'p.Item(''items'').Item(0).Add(''ExtraItem'',''Extra Data Value''):' & vbCrLfp.Item('items').Item(0).Add('ExtraItem', 'Extra Data Value') '这一句才是真正的添加新的值对,上面那句是用来在界面上显示相关信息的,没多大用处 '再次获取第一层的items下的数组的第一个用大括号括起来的那一串东西,看看添加上了新的值对没有str = str & 'p(''items'').item(0).ToString:' & p('items').item(0).ToString & vbCrLf '移除获取第一层的items下的数组的第一个用大括号括起来的那一串东西里面的名为url的值对 str = str & 'p.Item(''items'').Item(0).remove(''url''):' & vbCrLf p.item('items').item(0).remove('url')'这一句才是真正的移除值对,上面那句是用来在界面上显示相关信息的,没多大用处 '再次获取第一层的items下的数组的第一个用大括号括起来的那一串东西,看看移除的值对还在不在 str = str & 'p(''items'').item(0).ToString:' & p('items').item(0).ToString & vbCrLf Me.RichTextBox2.Text = str End SubEnd Class
'下面是上面的示例窗口的InitializeComponent事件代码,在使用JSON时不需要下面的代码
这里代码可能看起来挺费劲的,没办法,这里的编辑器不支持像论坛上那样可以将代码放到专门的框里面去,大家将就看吧