0
我正在嘗試構建我認爲應該是相對簡單的閱讀器/編輯器,這是一個非常特別格式化的JSON文件,主要是爲了防止用戶搞亂語法。使用JSON文件中的數據填充組合框
JSON格式是:
"Items": {
"defaultActionClass": "Weaponclass",
"ItemObjects": [
{
"Id": "M16",
"Name": "EM16",
"Description": "Some Description",
"Icon": "Icons/pictures/1.png",
"AnimationSet": "Set1",
"Type": "Weapon",
"EquipmentClass": "Hands",
"SlotsCount": 2,
"Weight": 1,
"AP": 1,
"BurstFire": 1,
"AutoFire": 0,
"EffectiveRange": 8.0,
"MuzzleVelocity": 2.5,
"BaseAccuracy": 100.0,
"Mobility": 6.0,
"Damage": 30,
"DamageFalloff": 30,
"AmmoClips": [
"AmmoClip556NATOx30"
]
},
我可以在字符串中讀出,這不是一個問題,就是我用的以下兩項掙扎。
找到一種方式來獲得標識的使用下面的代碼:
Dim root As RootObject = JsonConvert.DeserializeObject(Of RootObject)(strjson)
Dim ID As List(Of String) = root.Items.ItemObjects.Select(Of String)(Function(tp) tp.Id).ToList()
返回所有60個ID在列表中的,現在我的挑戰是讓該列表到組合框。我知道我之前已經用其他物品做過這件事,但這件事仍在逃避我。
光滑過度組合框片。
cmbWeaponID.DataSource = ID
好了,現在要弄清楚如何從每個ID獲取數據的其餘部分上的SelectedIndexChanged組合框,並將其導入不同的文本框中。
設法與下面的代碼的那麼順利:
Dim o As JObject = JObject.Parse(strjson)
Dim Type As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].Type"))
Dim Name As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].Name"))
Dim Description As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].Description"))
Dim Icon As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].Icon"))
Dim AnimationSet As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].AnimationSet"))
Dim SlotsCount As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].SlotsCount"))
Dim Weight As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].Weight"))
Dim APCost As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].AP"))
Dim BurstFire As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].BurstFire"))
Dim AutoFire As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].AutoFire"))
Dim EffectiveRange As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].EffectiveRange"))
Dim MuzzleVelocity As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].MuzzleVelocity"))
Dim BaseAccuracy As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].BaseAccuracy"))
Dim Mobility As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].Mobility"))
Dim Damage As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].Damage"))
Dim DamageFalloff As String = CStr(o.SelectToken("Items.ItemObjects[" & cmbWeaponID.SelectedIndex & "].DamageFalloff"))
很容易看看http://json.codeplex.com/ – meda 2014-10-18 14:46:13
到目前爲止,我已經能夠使用 SelectToken(「Items」)從文件中拉出第一個ID SelectToken(「ItemObjects [0] .Id「)。ToString) 那g讓我知道第一個項目ID,但我似乎無法完成所有工作。 – 2014-10-18 15:48:52