2011-02-09 9 views
5

でSystem.Runtime.Serialization.Jsonを見つけることができません私は、MonoTouchでで初心者です。
DataContractJsonSerializerを使用してJsonデータを逆シリアル化したいとします。しかし、私はMonoDevelopでSystem.Runtime.Serialization.Json(System.Runtime.Serializationの下の.Formattersのみ)を参照することはできません。私はSystem.Runtime.Serializationを参照しています。私の設定とインストールのシーケンスは次のとおりです。 1. iPhone SDK 4.2 2.モノ2.8.2(ないCSDKバージョン) 3. MonoTouchで3.2.4評価 4. MonoDevelopの2.4MonoTouchで

問題は何ですか?

答えて

7

MonoTouchには、このシリアライザのようにシンプルなDataContractJSonSerializerは付属していません。大きなセットのライブラリがあります。

System.Json APIを使用することも、NewtonSoftのJSonライブラリを使用することもできます。

+0

こんにちはミゲル、本当ですか?私はこの質問を参照してくださいhttp://stackoverflow.com/questions/3516471/javascriptserializer-and-monodevelop と私は、上記の本も読んだが、MarcusはついにDataContractJsonSerializerを使用しました – NewComer

+0

その投稿には何もありません。 –

+0

MonotouchのD​​ataContractJsonSerializerについてはわかりませんが、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

0

あなたが私に似ているとクロスプラットフォームのコードベースに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を使用してに切り替えていない理由の質問を頼みます。

希望に役立ちます!

関連する問題