リストする JSON 文字列、または asp.net 2.0 で使用可能なその他の形式

StackOverflow https://stackoverflow.com/questions/102866

  •  01-07-2019
  •  | 
  •  

質問

私は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 を使用してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top