2009-06-29 4 views

答えて

10

JSON.netを試しましたか?

+0

あなたが.NET 3.5でできるようなヘルパーメソッドを作成することを選びたいのですが、明らかに私はここでScottが言及しているライブラリを持っていませんが、自分自身をロールしたいと思います。私はそれが完了したよりも簡単だと思います: http://weblogs.asp.net/scottgu/archive/2007/10/01/tip-trick-building-a-tojson-extension-method-using-net- 3-5.aspx – PositiveGuy

+0

どういう意味ですか?それは本当に簡単です... – jfar

+2

仕事で私たちは.net 2.0とついていて、私はjson.netを使います。 –

1

JSON.orgは、C#で半分以上ダースを含む多数の言語でシリアライザの数への参照を持っています。 LGPLライセンスとよく設計されたJson.NETを含むJSONsharpなど、APIとライセンスのニーズを満たすものを見つけることができるはずです。

あなたがシリアライズしているものがかなりシンプルであれば、特定の目的のために自分自身を書くのはそれほど難しいことではありません。 JSON.orgサイトには構文があり、非常に簡単です。

+0

はJson.NETを使用できません。.NET 3.5 SP1が必要です。 – PositiveGuy

+0

JSONsharpはあなたが望むものでなければなりません。それはLGPLであり、ソースを含み、オブジェクトを取得してシリアル化し、.Net 2.0だけを必要とします。 – lavinio

11

.NET 2.0と互換性があるASP.NET Ajax 1.0のJavaScriptSerializerクラスを使用できます。

+0

は、ASP.NET AJAXコントロールを使用していないため、そのフレームワークをインストールしません。私たちはjQueryを使用します – PositiveGuy

+0

これはサーバーサイドクラスです。そのクラスを使用するためにクライアント側のコードを使用する必要はありません。 –

+0

うん、わかってるよ。私たちが.NET 3.5を持っていないので、ここで私を売っているかもしれません。 – PositiveGuy

1

.NET側でRPCサーバーを構築しようとしていますか?もしそうなら、Jayrock(jayrock.berlios.de)を見てください。あなたはソースコードを入手し、2.0でコンパイルします。

はまた、RPCサーバーを設定することは簡単です:

using Jayrock; 
using Jayrock.JsonRpc; 
using Jayrock.JsonRpc.Web; 
using Jayrock.Json; 
using Jayrock.Json.Conversion; 


namespace myRPCService 
{ 
    [JsonRpcService("Service")] 
    public class Service : JsonRpcHandler 
    { 

     [JsonRpcMethod("call", Idempotent = true)] 
     public string call(string value) 
     { 
      JsonObject oJSON = JsonConvert.Import(typeof(JsonObject), value) as JsonObject; 
      ... 
      return oJSON.ToString(); 
     } 
    } 
} 
+0

私たちの呼び出しによってJSONを返そうとしています。ashxページ – PositiveGuy

-1

私はJSONメッセージのためのコードの下に使用し、私のためによく働きます。

public static class JSONHelper 
{ 
    public static string ToJSON(this object obj) 
    { 
     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     return serializer.Serialize(obj); 
    } 
} 

WCFでJSONシリアライザを呼び出す。

[OperationContract] 
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json)] 
public string LoadDetails() 
{ 
    LogDetails objSubLog = new LogDetails(); 
    List<LogDetails> lstLogdetails; 
    DAL objDAL = new DAL(); 
    lstLogdetails = objDAL.GetLog("ALL", objSubLog); 
    return lstLogdetails.ToJSON(); 
} 
+0

従来のバージョンのSitecoreとの既存の依存関係のため、Json.NETの最新バージョンを使用できなかったので、これは非常に便利でした。 –

+0

「JavaScriptSerializer」は.NET 2.0では使用できません。https://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer(v=vs.90).aspx – TarasB

+0

JavaScriptSerializerは利用できません。 in .net 2.0 – Bogdan

1

私はいくつかのマイナーな変更でC#2.0にSystem.JsonのMonoの実装をバックポートすることができました。

あなたはhereから5つのhereからファイルやJavaScriptReader.csが必要になります。

System.Jsonでは、プリミティブ以外のデータ型を手動でシリアル化する必要があることに注意してください。 (hereを参照)

関連する問題