ふらっと C#,C♯,C#(初心者用) Part126 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0351デフォルトの名無しさん (ワッチョイ af4a-y5A3)
2017/01/27(金) 22:50:37.80ID:+Ih6k9xI0> それを動的にやって何がしたいのか激しく疑問
自分も質問文を書きながら、そう思われるだろうなと思っていました。
たぶん、こんなことをしたいと思いつく考え方が、そもそも間違いの可能性が高そうなのですが、
なぜこういうことを思いついたかというと、一つの問い合わせに対して返ってくるJSONの型が
複数あったりするので、どうやれば上手くまとまるかな? と考えたのがはじまり。
成功時→ {"person":{"name":"だれそれ","age":20}}
失敗時→ {"noresponse":{"message":"該当なし"}}
エラー→ {"error":{"number":1,"message":"error message."}}
頭の文字列(personなど)引っ張り出して、対応する型名(Person)をHashtableなんかから引っ張り出せばいいかなと。
hashtable.Add("person","Person");
hashtable.Add("error","Error");
...
object Json2Object(string json)
{
string typename = Regex.Match(json, @"\{""([^""]+)").Groups[1].Value
var o = JsonConvert.DeserializeObject<$$hashtable[typename]$$> (json);
return o;
}
呼び出した側では結局as is しますが、こんな発想自体ナンセンスですか?
■ このスレッドは過去ログ倉庫に格納されています