【问题标题】:Cannot convert Array to String无法将数组转换为字符串
【发布时间】:2012-05-02 11:17:47
【问题描述】:

我正在使用以下 WebMethod-

[WebMethod]
    public string get_IDs(string uid)
    {


        string url = "www.foobar.com/id=-1&user_id=" + uid";

        String data = SearchData(url);

        JObject o = JObject.Parse(data);

        string ids = (string)o["ids"];


        return ids;
    }

我的问题是返回的数据是数组形式,我希望它作为字符串返回,但是这会引发无法将数组转换为字符串的异常。我该怎么做?

【问题讨论】:

  • 我不确定我是否理解 - SearchData 返回的是 Array 而不是 String?你从哪里得到异常?
  • Ids(复数)如何作为单个字符串返回?
  • @David Hoerster 是的,SearchData 正在带回一个 JSON,其中 JSONI 正在尝试获取数组中的 id。我试图将其作为字符串返回,但无法将其转换为字符串?

标签: c# arrays webmethod


【解决方案1】:

我整理好了-

string followers = (string)o["ids"].ToString();

【讨论】:

    【解决方案2】:

    你能不能不要o["ids"].ToString();??

    我不熟悉 JObject 类,所以如果它没有 ToArray 函数,并且如果您希望通过 JObject o 变量获得超过 1 个 ID,您可以尝试:

    public List<string> get_IDs(string uid)
    {
    
    
        string url = "www.foobar.com/id=-1&user_id=" + uid";
    
        String data = SearchData(url);
    
        JObject o = JObject.Parse(data);
    
        List<string> ids = new List<string>();
    
        foreach (obj in o) {
           ids.add(obj.ToString());
        } 
        return ids;
    
    }
    

    注意方法类型从stringList&lt;string&gt;

    【讨论】:

      【解决方案3】:

      你可以使用

      string result = string.Join(";", array);
      return result;
      

      o["ids"]的类型是什么?

      var ids = (string)o["ids"];
      console.WriteLine(ids.GetType());
      

      如果idsint[] 类型,则必须将所有元素转换为String。见:C# Cast Entire Array?

      var strIds = Array.ConvertAll(ids, item => (String)item);
      string result = string.Join(";", strIds);
      return result;
      

      如果idsJObject,您可以使用JObject 的以下功能:

      public override IEnumerable<T> Values<T>()
      
      IEnumerable<String> strIds = ids.Values<String>();
      

      如果需要,将 Enumerable 转换为单个 StringC# IEnumerable<Object> to string

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-10
        • 2014-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多