如何从JSON Schema默认构造JavaScript对象?

Bra*_*ite 7 javascript json jsonschema

我已经开始在我的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#).这包括所有元数据,例如默认值,描述文本,有效范围等.

Jig*_*Raj -1

我认为...您必须使用两种方式与您的 HTML 代码绑定...所以,一旦您的客户端发生更改,您将获得您的服装 js 文件。

在这里查看淘汰赛 js。

敲掉JS链接

在 C# 代码中使用:$("#urlhidden").val() 或 Document.GetElemenyByID("#urlhidden").val()。

在这里您将获得数组/列表或文本框值

将 json 与 Ko 一起使用

为knockout 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) {



        }
    };
Run Code Online (Sandbox Code Playgroud)

==================================新更新================ ========================== 我认为..你可以做的一种方法...在 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);  
Run Code Online (Sandbox Code Playgroud)