1

我正在使用以下 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;
    }

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

4

3 回答 3

2

我整理了一下——

string followers = (string)o["ids"].ToString();
于 2012-05-02T12:09:39.330 回答
0

不能做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;

}

注意方法类型有 from stringtoList<string>

于 2012-05-02T11:22:54.817 回答
0

您可以使用

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

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

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

如果ids是类型int[],则必须将所有元素转换为String. 请参阅:C# 转换整个数组?

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

如果ids是,JObject您可以使用以下功能JObject

public override IEnumerable<T> Values<T>()

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

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

于 2012-05-02T12:07:53.253 回答