在C#中解析stdClass对象

时间:2017-02-03 16:25:33

标签: c# php json stdclass

我目前正在为客户提供比其他现有客户端更多的功能。我想添加的功能之一是用户能够将IP地址添加到他们的收藏夹并显示该服务器的相关信息(IP,端口,主机名,游戏模式等)。

为了做到这一点,我使用了一个带有几个参数的API,例如IP地址和端口。它返回某种包含我需要的信息的字符串。但是,我无法从字符串中提取出我想要的信息。我确实设法做到了,但是通过使用十几个子串来从响应中删除参数的值,我做得很快而且很脏。

以下是API调用的示例:http://monitor.sacnr.com/api/?IP=149.202.89.123&Port=7777&Action=info

最初我认为响应是某种JSON字符串,但经过一些谷歌搜索后,我在Stackoverflow上发现了一个关于stdClass的question。显然它是某种通用的PHP类。

所以我的问题是:如何将API的响应转换为JSON或XML,以便我可以轻松解析它?

回复示例:

O:8:"stdClass":18:{s:8:"ServerID";s:7:"1780392";s:2:"IP";s:14:"149.202.89.123";s:4:"Port";s:4:"7777";s:8:"Hostname";s:32:"Next Generation Roleplay (0.3.7)";s:8:"Gamemode";s:14:"NG:RP v3.0.409";s:8:"Language";s:7:"English";s:3:"Map";s:13:"NG-Gaming.net";s:10:"MaxPlayers";s:3:"500";s:7:"Players";s:3:"131";s:7:"Version";s:8:"0.3.7-R2";s:8:"Password";s:1:"0";s:4:"Time";s:5:"20:00";s:6:"WebURL";s:13:"ng-gaming.net";s:4:"Rank";s:3:"112";s:10:"AvgPlayers";s:5:"88.27";s:9:"HostedTab";s:1:"1";s:10:"LastUpdate";s:10:"1486138780";s:12:"TotalServers";s:4:"1305";}

1 个答案:

答案 0 :(得分:1)

尝试使用Sharp Serialization Library

根据他们的描述:“Sharp Serialization Library序列化和反序列化基元,ArrayLists和Hashtables,与PHP serialize()兼容”