2016-05-05 9 views
1

私はこのC#の文字列でJSONオブジェクトの変換

[ 
    {"type":"knife","knifeNO":"1","knifeName":"Shadow Daggers | Crimson Web","knifeEx":"Field Tested","knifeFv":" 0.3297","price":"42 keys","inspect":"steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198041444572A6024013354D17188164719027219402"}, 
    {"type":"knife","knifeNO":"2","knifeName":"Shadow Daggers | Urban Masked","knifeEx":"Field Tested","knifeFv":" 0.1972","price":"free","inspect":"steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198033359234A6046089123D2785026076714870254"}, 
    {"type":"gun","gunNo":"1","gunName":"StatTrak™ P90 | Trigon","gunEx":"Battle-Scarred","gunFv":"0.7393","price":"free","inspect":"steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198033359234A6042004711D7065101632830923871"}, 
    {"type":"gun","gunNo":"2","gunName":"M4A1-S | Atomic Alloy","gunEx":"Minimal Wear","gunFv":"0.1102","price":"2 keys","inspect":"steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198041444572A5899345580D13988253999937991086"} 
] 

.jsonファイル(オブジェクトのJSON配列を)持っていると私は、ファイルのための(タイプのように:「ナイフ」)と値のペアを引きたいとそれらを作りますC#の文字列を使用して、私が作業している1つのプロジェクトでそれらを使用することができます!しかし、私はそれを動作させることはできませんし、私は多くのことを試しました!

誰かが私を助けることができますか?

+4

これではありません。あなたの最善の試みを示して、それが機能するまで改善するのを手伝います。 – nvoigt

答えて

2

あなたは異なる特性を持っているオブジェクトの複数の差異クラス(つまり、銃やナイフ)を扱っているので、あなたがJSON.NETによって公開されDeserializeObject<T>()メソッドを介してそのようにdynamicオブジェクトとしてそれらをシリアル化し、それらを使用することを検討できます。

using Newtonsoft.Json; 

// Example of your JSON Input 
var input = "{your-huge-array-here}"; 
// Serialized weapons 
var weapons = JsonConvert.DeserializeObject<dynamic[]>(input); 
// Go through each type as expected 
foreach(dynamic gun in weapons.Where(w => w.type == "gun")) 
{ 
    Console.WriteLine("Gun Number: {0}, Gun Name: {1}",gun.gunNo,gun.gunName); 
} 
foreach(dynamic knife in weapons.Where(w => w.type == "knife")) 
{ 
    Console.WriteLine("Knife Number: {0}, Knife Name: {1}",knife.knifeNO,knife.knifeName); 
} 

何が必要に応じて、あなたは、独自のカスタムクラスを構築し、実際に文字列を移入するためにあなたのforeachループの内容を変えることができるなど

することはできsee a very basic demonstration of this here、あなたが以下に出力の例:StackOverflowのがどのように動作するか

enter image description here

+0

いいです。おそらく修正したいタイプミスがあります。ナイフはナイフでなければなりません。 gun.gunNoはgun.gunNoでなければなりません – user3885927

+0

ありがとうございます。いくつかのものが「いいえ」、他のものが「いいえ」だったので、正しい物件に関して少し混乱していました。私はそれに応じて答えを調整しました。 –

+0

ありがとうございました!あなたは最高です! –

関連する問題