将一些字符串转换为数组或列表 [关闭]

Posted

技术标签:

【中文标题】将一些字符串转换为数组或列表 [关闭]【英文标题】:Convert Some Strings to Array Or List [closed] 【发布时间】:2015-12-19 05:10:15 【问题描述】:

大家好,我正在调用一项休息服务来获取国家/地区,该服务正在将国家/地区返回给我,但它不是以列表形式出现或无法将其转换为列表,是否可以转换国家/地区列表并绑定它到一个组合框。另外我想澄清一下,我没有创建服务,或者我无法修改服务,但我必须使用该服务,这对我来说是强制性的。


    "CountryList":"<Countries><Country><Code>0<\/Code><Name>aaaa<\/Name><\/Country><Country><Code>1<\/Code><Name>bbbbbb<\/Name><\/Country> ... other countries ... <\/Countries>",
    "Error":
        "ErrorCode": 0,
        "ErrorMessage": ""
    

我正在使用这个类来解析这个json

public class Error

    public int ErrorCode  get; set; 
    public string ErrorMessage  get; set; 


public class Country

    public string CountryList  get; set; 
    public Error Error  get; set; 

【问题讨论】:

JSON 字符串中的 XML,真的吗? 你写过任何代码来尝试实现你想要的吗? @codemonkey 认真地说我是这个 json 和 Web 服务的新手,无法思考任何事情,如果有的话可以帮助我找到实现这一目标的方法。 你走了多远?您是否能够检索 JSON?你能解析 JSON 吗? 是的,这个类 m 用于这个 public class Error public int ErrorCode get;放; 公共字符串错误消息 获取;放; 公共类 Country 公共字符串 CountryList 获取;放; 公共错误错误 获取;放; 【参考方案1】:

我不知道什么样的服务会返回此响应,但正如您所见,您的 JSON 包含一个 XML 字符串。

反序列化 JSON 或 XML 的工作流程非常简单。

生成几个类来反序列化 JSON(Visual Studio:编辑 -> 选择性粘贴 -> 将 JSON 粘贴为类):

public class Rootobject

    public string CountryList  get; set; 
    public Error Error  get; set; 


public class Error

    public int ErrorCode  get; set; 
    public string ErrorMessage  get; set; 

并反序列化响应(使用 JSON.NET):

var responseObject = JsonConvert.DeserializeObject<RootObject>(jsonString);

然后你需要反序列化 XML。为此创建另一组类(编辑 -> 选择性粘贴 -> 将 XML 粘贴为类):

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class Countries


    private CountriesCountry[] countryField;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("Country")]
    public CountriesCountry[] Country
    
        get
        
            return this.countryField;
        
        set
        
            this.countryField = value;
        
    


/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class CountriesCountry


    private string codeField;

    private string nameField;

    /// <remarks/>
    public string Code
    
        get
        
            return this.codeField;
        
        set
        
            this.codeField = value;
        
    

    /// <remarks/>
    public string Name
    
        get
        
            return this.nameField;
        
        set
        
            this.nameField = value;
        
    

还有deserialize the XML string (alternative):

var countries = Deserialize<Countries>(responseObject.CountryList);

【讨论】:

哦! “粘贴......作为类”很酷。 非常感谢............

以上是关于将一些字符串转换为数组或列表 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

熊猫数据框列有带逗号的字符串如何将其转换为列表[关闭]

如何将字符串列表转换为列表列表? [关闭]

如何使用列表和字典将字符串转换为二进制代码

将数组转换为有效的JSON字符串,而不使用JSON.stringify?

如何将字符串转换为字节数组? [关闭]

如何将数组中的字符串转换为小写[关闭]