簡體   English   中英

如何從JSON Schema默認構造JavaScript對象?

[英]How to default construct JavaScript object from JSON Schema?

我已經開始在我的C#代碼中使用Newtonsoft.Json.Schema.JsonSchemaGenerator以及各種屬性屬性來幫助保持我的客戶端腳本DRY。 我想要做的是根據服務器的架構創建一個默認的初始化對象客戶端。 例如,當用戶單擊“New Foo”以將新條目添加到表中時,這將非常有用。

顯然我可以編寫代碼來迭代.Properties並構建新對象,這正是我目前正在做的事情。 但是我寧願避免重新發明輪子。

是否有任何用於處理JSON模式的JS庫可以做到這一點,還有其他一些我尚未意識到的需要的好東西?


2013年1月29日更新

有些人試圖回答我的問題而已經離開了基地,結果收到了SO社區的一些負面反饋。 所以讓我試着澄清一些事情。 這是挑戰:

  • 在JS客戶端腳本中,您有一個對象,它表示另一個對象的JSON 模式 比方說,這來自服務器通過JSON.NET,是C#類的表示。

  • 現在,在JS客戶端腳本中,基於JSON 模式創建其中一個對象。 必須根據模式默認初始化對象中的每個字段/屬性,包括所有包含的對象!

  • 獎勵:使用MVVM將此新對象綁定到UI(例如Knockout)。 更改一些字段以響應用戶輸入。

  • 將此新對象發送到服務器。 服務器端代碼將它添加到集合,數據庫表,等等。 (是的,該對象將使用Ajax作為JSON發送 - 我們可以假設)

  • 沒有重復 定義類的唯一位置是服務器端代碼(在我的示例中為C#)。 這包括所有元數據,例如默認值,描述文本,有效范圍等。

是的(我試過NodeJS):

JSON Schema默認值

我認為......你必須使用雙向綁定HTML代碼...所以,一旦你的客戶端改變你將獲得你的服裝js文件。

在這里查看淘汰賽。

淘汰JS Link

在C#代碼上使用:$(“#urlhidden”)。val()或Document.GetElemenyByID(“#urlhidden”)。val()。

在這里,您將獲得數組/列表或文本框值

使用json和Ko

為knockout js創建新的viewmodel,你將在上面的鏈接上獲得想法。

並創建一個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) {



        }
    };

================================新更新================ ==========================我認為..你可以做的一種方式...在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);  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM