リストする JSON 文字列、または asp.net 2.0 で使用可能なその他の形式
質問
私は1つを持っている JSON
それは入ってくる string
フォーマット。に保管する必要があります key-pair
価値観とかそういうもの。使っています asp.net 2.0
サードパーティは使用できません DLL
のように Newtonsoft.Json.dll
. 。最後の選択肢は使用することだと思います regular expression
.
誰かこれについて助けてくれませんか?
解決
に行くなら http://www.json.org/ ページの下部に目を向けると、数十の JSON ライブラリがあり、そのほとんどがオープンソースで、C# 用に 8 つリストされていると思います。これらのライブラリのいずれかを参照できない場合は、寛容なライセンスを持つライブラリを見つけて、コードをプロジェクトに追加するのが最善の策だと思います。
もう 1 つのアイデアは、図、文法、および構文を参照することです。 http://www.json.org/ 独自のパーサーを作成するだけですが、正規表現は ない それを行う方法。パーサーの書き方がわからない場合は、オープン ソースの JSON ライブラリの 1 つを参照するか、優れた CSV パーサーなどのそれほど複雑ではないものから始めることができます。非常に良さそうな論文を次に示します。 http://www.boyet.com/Articles/CsvParser.html
他のヒント
C# で JScript を使用して JSON をキーと値のペアにシリアル化することができます。プロジェクトにいくつかの参照を追加する必要があります。これらは .NET Framework の一部であるため、プロジェクトに参照を追加するだけで済みます。あなたは必要になるでしょう:
- Microsoft.JSript
- Microsoft.Vsa
まず、クラスの先頭の using です。
using Microsoft.JScript;
using Microsoft.JScript.Vsa;
次に、スクリプトを実行するエンジンを ' のどこかで初期化する必要があります。Page
' コードビハインド:
VsaEngine Engine = VsaEngine.CreateEngine();
次に、このメソッドを作成し、JSON オブジェクトを渡して呼び出すだけです。
object EvalJScript(string JScript)
{
object result = null;
try
{
result = Microsoft.JScript.Eval.JScriptEvaluate(JScript, Engine);
}
catch (Exception ex)
{
return ex.Message;
}
return result;
}
の種類 object
(JSON が渡された場合) 返されるのは 'JSObject
'。その値にはキーと値のペアとしてアクセスできます。読む MSDN ドキュメント このオブジェクトの詳細については、
コードの使用例を次に示します。
string json = "({Name:\"Dan\",Occupation:\"Developer\"})";
JSObject o = EvalJScript(json) as JSObject;
string name = o["Name"] as string; // Value of 'name' will be 'Dan'
JScript.NET を使用できますか?
もしそうなら、eval() を使えば簡単にできるはずです - 返されたオブジェクトをループして、KeyValuePair などに変換するだけです
コードビハインド言語として jscript.net を使用する必要がありますが、サイトの他のページは C# のままでも問題ありません。
前のコメントで述べたように、セキュリティの側面とリスクを認識する必要があります。解析している JSON を信頼できる場合にのみ eval を使用してください。