7

我已经开始在我的 C# 代码中使用 Newtonsoft.Json.Schema.JsonSchemaGenerator 以及各种属性来帮助保持我的客户端脚本干燥。我想做的是根据服务器的模式创建一个默认的初始化对象客户端。例如,当用户单击“New Foo”以将新条目添加到表中时,这将很有用。

显然,我可以对其进行编码以迭代 .Properties 并构建新对象,这就是我目前正在做的事情。但是,我宁愿避免重新发明任何轮子。

除了我还没有意识到我需要的其他漂亮东西之外,是否有任何用于处理 JSON 模式的 JS 库?


2013 年 1 月 29 日更新

有些人试图回答我的问题并且已经偏离了基础,因此收到了来自 SO 社区的一些负面反馈。所以让我试着澄清一下。这是挑战:

  • 在 JS 客户端脚本中,您有一个表示另一个对象的 JSON Schema的对象。比方说,这来自服务器通过 JSON.NET 并且是 C# 类的表示。

  • 现在,在 JS 客户端脚本中,基于 JSON Schema创建这些对象之一。对象中的每个字段/属性都必须根据架构默认初始化,包括所有包含的对象!

  • 奖励:使用 MVVM(例如 Knockout)将此新对象绑定到 UI。更改某些字段以响应用户输入。

  • 将此新对象发送到服务器。服务器端代码会将其添加到集合、数据库表等中。(是的,对象将使用 Ajax 作为 JSON 发送——我们可以假设)

  • 没有重复!定义类的唯一位置是服务器端代码(在我的示例中为 C#)。这包括所有元数据,例如默认值、描述文本、有效范围等。

4

2 回答 2

1

是的(我用 NodeJS 试过):

JSON 架构默认值

链接已更新。

于 2018-02-28T19:36:26.650 回答
-1

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

在这里查看淘汰赛 js。

淘汰 JS 链接

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

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

将 json 与 Ko 一起使用

为淘汰赛 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) {



        }
    };

=================================新更新================ ========================== 我认为..你可以做的一种方法...在 C# 代码中获取 xml 格式的数据并转换为 json字符串...检查以下代码 // 将字符串 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 回答