C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

キー名なしのJSONデータを各々取得したい

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■92820 / inTopicNo.1)  キー名なしのJSONデータを各々取得したい
  
□投稿者/ aiten09 (4回)-(2019/10/31(Thu) 21:38:23)

分類:[.NET 全般] 

お世話になっております。

[[235324,"108.158","108.161","108.152","108.158"],
[235325,"108.157","108.158","108.15","108.152"],
[235326,"108.153","108.163","108.151","108.159"]
,[235627,"108.157","108.169","108.157","108.162"]]
※[]の数は不定

上記のような、キー名なしのJSONデータを例のように
各々分離させたいのですが、可能でしょうか?

(例)
int iData=235627;
string sBuf1="108.157";
string sBuf2="108.169";
string sBuf3="108.157";
string sBuf4="108.162";
-----

キー名ありですと、プロパティを使えば簡単に取得・分離
できるのですが、専用のメソッドを作るべきでしょうか・・・。

お手数をおかけ致しますが
宜しくお願い致します。









引用返信 編集キー/
■92821 / inTopicNo.2)  Re[1]: キー名なしのJSONデータを各々取得したい
□投稿者/ Hongliang (911回)-(2019/10/31(Thu) 21:51:57)
できるかと言われればもちろんできますが。
どこに詰まってるのかが分かりません。
どのデシリアライザを使ってるのか知りませんが、デシリアライズすれば配列の配列になるでしょうから順次読み取っていくだけでは?
引用返信 編集キー/
■92823 / inTopicNo.3)  Re[1]: キー名なしのJSONデータを各々取得したい
□投稿者/ WebSurfer (1962回)-(2019/10/31(Thu) 22:44:46)
No92820 (aiten09 さん) に返信

例えば Newtonsoft.Json を使うと List<List<object>> 型のオブジェクトにデシリアライズ
できるはずです。

お試しください。
引用返信 編集キー/
■92844 / inTopicNo.4)  Re[2]: キー名なしのJSONデータを各々取得したい
□投稿者/ WebSurfer (1964回)-(2019/11/01(Fri) 18:34:18)
Newtonsoft.Json を使って List<List<object>> 型のオブジェクトにデシリアライズ
してみました。jsonText4 というのは質問にあった JSON 文字列です。

var desObj = JsonConvert.DeserializeObject<List<List<object>>>(jsonText4);

foreach (List<object> o in desObj)
{
    Console.WriteLine($"{o[0]}, {o[1]}, {o[2]}, {o[3]}, {o[4]}");
}

// 結果は:
// 235324, 108.158, 108.161, 108.152, 108.158
// 235325, 108.157, 108.158, 108.15, 108.152
// 235326, 108.153, 108.163, 108.151, 108.159
// 235627, 108.157, 108.169, 108.157, 108.162


MiniJSON を使っても同じ結果が得られます。

var desObj = Json.Deserialize(jsonText4);

引用返信 編集キー/
■92845 / inTopicNo.5)  Re[3]: キー名なしのJSONデータを各々取得したい
□投稿者/ WebSurfer (1965回)-(2019/11/01(Fri) 18:47:05)
MiniJSON の方はキャストが必要でした。

var desObj2 = (List<object>)Json.Deserialize(jsonText4);

foreach (List<object> o in desObj2)
{
    Console.WriteLine($"{o[0]}, {o[1]}, {o[2]}, {o[3]}, {o[4]}");
}

// 結果は:
// 235324, 108.158, 108.161, 108.152, 108.158
// 235325, 108.157, 108.158, 108.15, 108.152
// 235326, 108.153, 108.163, 108.151, 108.159
// 235627, 108.157, 108.169, 108.157, 108.162

引用返信 編集キー/
■92853 / inTopicNo.6)  Re[4]: キー名なしのJSONデータを各々取得したい
□投稿者/ aiten09 (5回)-(2019/11/02(Sat) 20:42:37)
皆さん、色々とご丁寧に教えて下さり、
誠に有難うございました。

無事に取得できました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ