繁体   English   中英

如何将JSON字符串转换为数组

[英]How to convert JSON string to an array

我有以下JSON字符串:

[
   {
      "name":"Test diagnosis",
      "code":"324324",
      "table":"EXAMPLE",
      "addedby":"EDnurse",
      "dateadded":3243243,
      "qualifier":[
         {
            "name":"Qualifier",
            "value":"Confirmed Diagnosis",
            "code":"23434434",
            "prefix":"[C] "
         },
         {
            "name":"Left/Right",
            "value":"Bilateral",
            "code":"324343",
            "suffix":" - Bilateral"
         }
      ],
      "prefix":"[C] ",
      "suffix":" - Bilateral"
   }
]

您可以看到此JSON字符串中的Qualifier字段是嵌套的,并且具有2个对象。

我正在研究一个使用SSIS中的C#解析此JSON字符串的程序包。 我可以使用限定符的一个对象来解析字符串,但是当我添加第二个对象(左/右)并尝试将字符串转换为数组时,会收到错误消息。

没有数组(与一个Qualifier对象一起使用):

Diagnosis diagnosis = js.Deserialize<Diagnosis>(reviewConverted);

使用数组(返回错误,指出我无法将类型诊断隐式转换为类型诊断):

Diagnosis diagnosis = js.Deserialize<List<Diagnosis>>(reviewConverted);

我还使用以下类定义诊断字段:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SC_8aae662509ae4bab8491323924579173
{
    class Diagnosis
    {
        public string name { get; set; }
        public string code { get; set; }
        public string table { get; set; }
        public string addedby { get; set; }
        public string dateadded { get; set; }

        public qualifier Qualifier { get; set; }

        public string prefix { get; set; }
        public string suffix { get; set; }


    }
}

这是我的预选课:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SC_8aae662509ae4bab8491323924579173
{
    class qualifier
    {
        public string name { get; set; }
        public string value { get; set; }
        public string code { get; set; }
        public string prefix { get; set; }
    }
}

您是否尝试过以下方法?

class Diagnosis
{
    public string name { get; set; }
    public string code { get; set; }
    public string table { get; set; }
    public string addedby { get; set; }
    public string dateadded { get; set; }

    public List<Qualifier> qualifier { get; set; }

    public string prefix { get; set; }
    public string suffix { get; set; }


}

据我所知,根据您的发言,1个诊断对象可以包含多个Qualifier对象。 因此,您需要执行以下操作:首先,将Diagnosis类更改为具有以下属性:

public qualifier List<Qualifier> { get; set; }

代替

public qualifier Qualifier { get; set; }

同样,以下语句是导致您出错的原因:

Diagnosis diagnosis = js.Deserialize<List<Diagnosis>>(reviewConverted);

您试图将“诊断列表”对象存储在“诊断”对象中,这毫无意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM