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"
]
},
내가 문자열에 읽을 수있는, 즉 문제가 아니라, 내가 두 항목을 따르고 있습니다 고민하고있는 무슨.
는 ID의 다음 코드를 사용하여 얻을 수있는 방법을 찾았습니다 지금 내 도전은 콤보 상자에 그 목록을 받고, 목록에있는 모든 60 ID 년대를 반환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()
. 나는 다른 물건들과 함께이 일을 끝냈다는 것을 압니다.하지만이 일은 계속해서 저를 망설이고 있습니다.
콤보 박스 조각을 부드럽게 지나치게 생각하고 있습니다.
cmbWeaponID.DataSource = ID
좋아, 이제 콤보 상자의 SelectedIndexChanged 각 ID의 데이터의 나머지 부분을 잡고 다른 텍스트 상자로 가져 오는 방법을 알아낼 수 있습니다.
는 다음 코드뿐만 아니라가는 것을 얻을 관리 :
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
지금까지 나는 SelectToken ("Items")을 사용하여 파일의 첫 번째 ID를 가져올 수있었습니다. SelectToken ("ItemObjects [0] .Id "). ToString) 그 g ets 날 첫 번째 항목 ID를하지만 나는 그들을 얻을 루프 작업을 할 수없는 것. –