我目前正在研究比另一個現有客戶端有更多功能的客戶端。我想添加的功能之一是用戶可以將IP地址添加到他們的收藏夾並顯示該服務器的相關信息(IP,端口,主機名,遊戲模式等)。在C中解析stdClass對象#
爲了做到這一點,我使用一個API,它需要幾個參數,如IP地址和端口。它返回某種包含我需要的信息的字符串。但是,我無法從字符串中提取我想要的信息。我確實設法做到了,但我通過使用十幾個子字符串從響應中刪除了參數的值,從而快速而骯髒地完成了它。
下面是一個API調用的一個例子:http://monitor.sacnr.com/api/?IP=149.202.89.123&Port=7777&Action=info
起初我以爲響應是某種JSON字符串的,但一些谷歌搜索後,我#2發現question約stdClass的。顯然這是某種通用的PHP類。
所以我的問題是:如何將API的響應轉換爲JSON或XML,以便我可以輕鬆解析它?
實施例響應:使用Sharp Serialization Library
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";}
這不是一個JSON字符串。 – 2017-02-03 16:31:47
如果你編寫一個像[this one]這樣的小PHP腳本(https://eval.in/729960),並讓C#獲取JSON字符串,可能會更好。可能比編寫C#php對象解串器更容易。 – apokryfos
或https://sourceforge.net/projects/csphpserial/可能工作 – apokryfos