7

クライアント スクリプトを DRY に保つために、C# コードでさまざまなプロパティ属性と共に Newtonsoft.Json.Schema.JsonSchemaGenerator の使用を開始しました。私がやりたいことは、サーバーからのスキーマに基づいて、クライアント側でデフォルトの初期化されたオブジェクトを作成することです。これは、たとえば、ユーザーが「New Foo」をクリックして新しいエントリをテーブルに追加する場合に役立ちます。

明らかに、.Properties を反復処理して新しいオブジェクトを構築するようにコード化することができます。これが現在行っていることです。ただし、車輪の再発明は避けたいと思います。

これを行う JSON スキーマを操作するための JS ライブラリはありますか?


2013/1/29更新

一部の人々は私の質問に答えようとしましたが、根拠がありませんでした。その結果、SO コミュニティから否定的なフィードバックを受けました。それでは、物事を明確にしようとしましょう。課題は次のとおりです。

  • JS クライアント スクリプトには、別のオブジェクトの JSONスキーマを表すオブジェクトがあります。たとえば、これは JSON.NET 経由でサーバーから送信されたもので、C# クラスの表現です。

  • 次に、JS クライアント スクリプトで、JSONスキーマに基づいてこれらのオブジェクトの 1 つを作成します。オブジェクトの各フィールド/プロパティは、含まれるすべてのオブジェクトを含め、スキーマに従ってデフォルトで初期化する必要があります!

  • ボーナス: MVVM (Knockout など) を使用して、この新しいオブジェクトを UI にバインドします。ユーザー入力に応じて、いくつかのフィールドを変更します。

  • この新しいオブジェクトをサーバーに送信します。サーバー側のコードは、それをコレクション、データベース テーブルなどに追加します。(はい、オブジェクトは Ajax を使用して JSON として送信されます。想定できます)

  • 重複なし!クラスが定義される唯一の場所は、サーバー側のコード (私の例では C#) です。これには、デフォルト値、説明テキスト、有効範囲などのすべてのメタデータが含まれます。

4

2 に答える 2

-1

私は思う...HTMLコードで双方向バインディングを使用する必要がある...だから、クライアント側の変更が完了すると、衣装のjsファイルが取得されます。

ノックアウト js については、こちらをご覧ください。

ノックアウト JS リンク

C# コードでは、$("#urlhidden").val() OR Document.GetElemenyByID("#urlhidden").val() を使用します。

ここで、配列/リストまたはテキストボックスの値を取得します

Ko で json を使用する

上記のリンクでアイデアを得るノックアウト js の新しいビューモデルを作成します。

次のようなjson呼び出しを作成します。

 self.LoadMAS_Client = function () {

        try {



            var params = { "clientID": ClientId };

            $.ajax({
                type: "POST",
                url: "http://" + ServerString + "/Services/LogisticsAppSuite-Services-Web-Services-MasClientService.svc/Json/GetAllLevelSubClients",
                contentType: 'application/json',

                data: JSON.stringify(params),
                dataType: 'json',
                async: false,
                cache: false,
                success: function (response) {


              // in response u will get the data.and use as per your requirement.

                  eg.   self.SelectedClient(response.your value);





                },
                error: function (ErrorResponse) {


                }

            });
        }
        catch (error) {



        }
    };

================================ 新しいアップデート ================ ========================== 私が思う..あなたができる1つの方法... C#コードでxml形式のデータを取得し、jsonに変換しますstring...以下のコードを確認 // 文字列 xml に含まれる XML ノードを JSON 文字列に変換するには

XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
string jsonText = JsonConvert.SerializeXmlNode(doc);

// To convert JSON text contained in string json into an XML node
XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode(json);  
于 2013-01-29T04:38:20.450 に答える