我正在使用以下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;
}
我的问题是返回的数据是数组形式,我希望它作为一个字符串返回,但是这会引发一个异常,即将数组转换为字符串。我怎么能这样做?
答案 0 :(得分:2)
我对它进行了分类 -
string followers = (string)o["ids"].ToString();
答案 1 :(得分: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;
}
请注意,方法类型有string
到List<string>
答案 2 :(得分:0)
您可以使用
string result = string.Join(";", array);
return result;
o["ids"]
的类型是什么?
var ids = (string)o["ids"];
console.WriteLine(ids.GetType());
如果ids
的类型为int[]
,则必须将所有元素投射到String
。请参阅:C# Cast Entire Array?
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>();
如果需要,将可枚举转换为单个String
:C# IEnumerable<Object> to string