C# というかASP.NET でJSON(Response編)
前回、Android 三昧という記事を書いたのですが、サーバサイドは、C#というか、Azureを利用してます。
その理由の1つに、DynamicJsonというツール(ライブラリ)を使うと、非常に簡単にJSONでレスポンスすることができるからです。
例えば、Entity Frameworkでもなんでもいいのですが、
var query = from p in source
select p;
とクエリを実行したら、
Response.Write(DynamicJson.Serialize(query))とするだけでレスポンス可能です。
ただ、実際は、Datetimeの文字列に「:」が含まれてしまってJSONが正しく認識されなかったり、いらないデータまで入るので、実際は間引いてやる必要がありますが、それも、難しくありません。
その際は、例えば、
public class Person
{
public string name {get;set;}
public string tel {get;set;}
}
などと適当なクラスを作って、
List<Person> plist = new List<Person>();
foreach(var q in query)
{
Person psn = new Person();
psn.name = q.name;
psn.tel = q.tel;
plist.add(psn);
}
などとしてから、
Response.Write(DynamicJson.Serialize(plist));
とすると、きれいに間引けます。すばらしい。
後は、Androidで処理しようが、iPhoneで処理しようがあなた次第。