|
> [{"salsId":"2","customerId":"1","salsCategory":"11","slipNo":"2"},{"salsId":"3","customerId":"1","salsCategory":"11","slipNo":"2"}]
JavaScriptSerializerは、変換方法を明示しない場合、配列はObject()に、キー値ペアはDictionary(Of String, Object)に変換するようです。
> Console.WriteLine("salsId" + obj_data(int_count)(0)) ←←←※※※
obj_data(int_count)はDictionary(Of String, Object)を返しますが、
DictionaryはIntegerでアクセスできるインデクサを持っていません。
(Dictionaryは順序付きではないので、どのアイテムがインデックス0なのか決定できません)
ですのでエラーになっています。
obj_data(int_count)("selsId")
のようにキー文字列でアクセスするのが基本です。
.Values.ToArray()(0)
のようにしてインデックスでアクセスすることも不可能ではないですが、
前述のようにDictionaryは順序付きではないので、インデックス0で返される値は
salsIdキーのものであることもあればsalsCategoryキーのものであることもあり、
おそらく実用性はありません。
単純に全部表示させたいだけなら、
For Each pair As KeyValuePair(Of String, Object) In obj_data
Console.WriteLine("{0} : {1}", pair.Key, pair.Value);
Next
のように列挙させる方法があります。
|