【问题标题】:deserialize json in datatable from javascriptserializer从 javascriptserializer 反序列化数据表中的 json
【发布时间】:2013-01-22 08:18:04
【问题描述】:

您好,我必须将 json 数据解析为 datatable 对象。 Bellow 是我的json 数据

{

"Figurative Expressions (Idioms)" : {

 "A" : [
         {
            "One word" : "Above all",
            "Phrase" : "chiefly, before everything else"
         },
         {
            "One word" : "Above-board",
            "Phrase" : "not open to question, honest, straight-forward, beyond reproach"
         },
         {
            "One word" : "Above-par",
            "Phrase" : "of superior quality"
         },
         {
            "One word" : "On account of ",
            "Phrase" : "for the sake of"
         },
         {
            "One word" : "On no account",
            "Phrase" : "not for any reason"
         },
         {
            "One word" : "To give a good account of oneself",
            "Phrase" : "to act with credit to oneself"
         }
      ]
   }

}

我们如何解析datatable 中的json 数据?

当我尝试使用javascriptserializer 时,它被成功解析,但在datatable 中没有得到任何东西。

JavaScriptSerializer js = new JavaScriptSerializer(); 
DataTable data1 = js.Deserialize<DataTable>(text);

【问题讨论】:

  • 什么数据表?我们在这里谈论的是哪种语言?显示更多代码 -> 你尝试了什么 =)
  • 我尝试了以下代码: JavaScriptSerializer js = new JavaScriptSerializer(); DataTable data1 = js.Deserialize(text);
  • 您可以尝试使用Json.Net。看到这个问答:How to convert json into datatable?
  • 我尝试使用 Json.Net 并收到此错误“完成反序列化对象后在 JSON 字符串中找到附加文本。”

标签: c# .net json


【解决方案1】:

这可能是因为您示例中的 Json 不是纯数组 - 而是具有一个名为 A 的属性的对象,它是实际数组。

我的建议是尝试仅反序列化定义 A 属性(以方括号开头)的文本 - 如此纯 Json 数组。这应该反序列化为 Datatable 罚款。

【讨论】:

    猜你喜欢
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多