あなたが私に似ているとクロスプラットフォームのコードベースにDataContractJsonSerializerを使用しようとしている場合、DataContractJsonSerializerにJSON.NETのAPI(別名Newtonsoft.Json)をラップするのは簡単です:
using System;
using System.IO;
using System.Reflection;
using Newtonsoft.Json;
namespace System.Runtime.Serialization.Json
{
public class DataContractJsonSerializer
{
private Type type;
private JsonSerializer js;
public DataContractJsonSerializer (Type t)
{
this.type = t;
this.js = new JsonSerializer();
}
public object ReadObject(Stream stream)
{
StreamReader reader = new StreamReader(stream);
return js.Deserialize(reader, type);
}
public void WriteObject(Stream stream, object o)
{
StreamWriter writer = new StreamWriter(stream);
js.Serialize(writer, o);
writer.Flush();
}
}
}
もちろん
、それはそのAPIを持つ私の個人的な経験は、それが(Windowsの携帯電話上で、少なくとも私の非公式のテストで)DCJSを使用するよりも遅くなることができるということです...どこでもJSON.NETのAPIを使用してに切り替えていない理由の質問を頼みます。
希望に役立ちます!
こんにちはミゲル、本当ですか?私はこの質問を参照してくださいhttp://stackoverflow.com/questions/3516471/javascriptserializer-and-monodevelop と私は、上記の本も読んだが、MarcusはついにDataContractJsonSerializerを使用しました – NewComer
その投稿には何もありません。 –
MonotouchのDataContractJsonSerializerについてはわかりませんが、miguelが私を誘いました。 これらのコードではありません // ----- parse Json data ----- JsonArray jsonArray = JsonArray.Parse(responseBody)as JsonArray; 一覧ブランド=新しいリスト(); foreachの(jsonArrayでJsonObject jsonObject) {ブランドブランド=新しいブランド()。 brand.ID = jsonObject ["BrandID"]; brand.Name = jsonObject ["Name"]; brand.Country = jsonObject ["Country"]; brands.Add(ブランド); } –
NewComer