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

使用できます

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 を単一に変換しますString: C# IEnumerable<Object> to string

于 2012-05-02T12:07:53.253 に答える
0

できませんかo["ids"].ToString(); ??

私は JObject クラスに慣れていないので、ToArray 関数がなく、JObject o 変数を介して複数の 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;

}

メソッドの型がstringtoからあることに注意してくださいList<string>

于 2012-05-02T11:22:54.817 に答える