如何将JArray转换为字符串?

时间:2014-04-25 12:19:18

标签: c# string bots steam

我正在制作一个蒸汽交易机器人,我希望能够获取我的库存并将其发送给其他用户,这就是我所做的(使用SteamKit2):

dynamic Response;
string Inv;
string name = Bot.SteamFriends.GetFriendPersonaName(OtherSID);
System.Console.WriteLine(name + " Said: " + message);
Response = Inventory.GetInventory(Bot.SteamClient.SteamID);
System.Console.WriteLine(Inv = Response.rgInventory);
Bot.SteamFriends.SendChatMessage(OtherSID, EChatEntryType.ChatMsg, Inv);

我收到以下错误:

[TF2 Bot 2014-04-25 20:13:18] ERROR: Microsoft.CSharp.RuntimeBinder.RuntimeBinde
rException: Cannot implicitly convert type 'Newtonsoft.Json.Linq.JArray' to 'str
ing'. An explicit conversion exists (are you missing a cast?)
at CallSite.Target(Closure , CallSite , Object )
at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T
0 arg0)
at SteamBot.SimpleUserHandler.OnMessage(String message, EChatEntryType type)
in C:\Users\Raka Gunarto\Documents\GitHub\SteamBot\SteamBot\UserHandler.cs:line
47
at SteamBot.Bot.<HandleSteamMessage>b__8(FriendMsgCallback callback) in C:\Us
ers\Raka Gunarto\Documents\GitHub\SteamBot\SteamBot\Bot.cs:line 481
at SteamKit2.CallbackMsg.Handle[T](Action`1 handler)
at SteamBot.Bot.HandleSteamMessage(CallbackMsg msg) in C:\Users\Raka Gunarto\
Documents\GitHub\SteamBot\SteamBot\Bot.cs:line 471
at SteamBot.Bot.BackgroundWorkerOnDoWork(Object sender, DoWorkEventArgs doWor
kEventArgs) in C:\Users\Raka Gunarto\Documents\GitHub\SteamBot\SteamBot\Bot.cs:l
ine 731

所以我的问题是:你如何将JArray转换为String? 如果只是在System.Console.WriteLine中执行Response.rgInventory,那很好。但是当我尝试向某人发送消息时,它并不好,因为SendChatMessage函数接受一个字符串作为输入。

1 个答案:

答案 0 :(得分:0)

根据具体实施情况,您应该可以使用:

Inv = Response.rgInventory.toString();

如果这不会产生令人满意的结果,您可能必须自己构造字符串。您可以随时继续覆盖toString()方法,使其符合您的要求。