【问题标题】:nested json by using stored procedure call使用存储过程调用嵌套 json
【发布时间】:2015-03-08 12:48:54
【问题描述】:
[
    {
    "name": "student1",
    "projects": 
    [
        {
        "name": "Project1",
        "tasks": 
                [
                    {
                    "name": "task1",
                    "id": 2
                    }
                ],
        "id": 6
        }
    ]
},

等等……

我想做这样的json数据。现在我正在调用一个存储过程来获取学生信息,并通过迭代学生结果并通过学生 ID 调用项目存储过程。我想优化这个操作。我认为这不是正确的调用方式。请帮助我。

【问题讨论】:

  • "FOR XML" 通常会根据您的联接(或子查询)为您分层地“拆分”它。您可以从这一点开始,然后努力以 JSON 格式输出。没有一些代码就不能说更多了。
  • 感谢重播。它帮助很大。你有任何示例代码来获取 xml 并存储到我的类对象(json 结构)

标签: c# .net sql-server json stored-procedures


【解决方案1】:

使用 TSQL FORXML 获取 XML 层次结构。然后使用以下(作为起点),其中 strOrigObject 是您发送的字符串:

//Declare the object for return (if any)
Student objWorkingObject = new Student();

//Populate into XML
XmlDocument _Doc = new XmlDocument();
_Doc.LoadXml(strOrigObject);
var ser = new System.Xml.Serialization.XmlSerializer(typeof(Student));
objWorkingObject = (Student)ser.Deserialize(new XmlNodeReader(_Doc.DocumentElement));

【讨论】:

  • 您好,此代码不适用于嵌套列表。你有其他示例代码吗?
  • 这对我来说绝对适用于分层数据,只需确保我们定义为 XML 的对象,以及项目的 等。
  • 感谢您的友好回复。 xml 中的某些名称与对象不匹配。在这种情况下,我只想绑定匹配的文件名。有可能这样做吗?
  • 不确定。我不得不在“临时”功能中进行一些翻译。传入通用 XML 并传出 Object。我还通过使用 XSLT 加载 xml 来解决一些工作,该 XSLT 仅以我想要的格式获取特定标签。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-25
  • 1970-01-01
  • 2013-01-21
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
  • 2015-01-03
相关资源
最近更新 更多