2017-02-03 4 views
3

私は現在、ゲームの既存のクライアントよりも多くの機能を備えたクライアントで作業しています。私が追加したい機能の1つは、ユーザーがお気に入りにIPアドレスを追加し、そのサーバーの関連情報(IP、ポート、ホスト名、ゲームモードなど)を表示する機能です。C#のstdClassオブジェクトを解析する

これを行うには、IPアドレスやポートなどのいくつかのパラメータを使用するAPIを使用します。それは私が必要とする情報を含む何らかの種類の文字列を返します。しかし、私は文字列から必要な情報を抽出するのに問題があります。私はそれをすることができましたが、レスポンスからパラメータの値を切り取るためにダースの部分文字列を使用することで、素早く汚れました。ここで

は、API呼び出しの例です:http://monitor.sacnr.com/api/?IP=149.202.89.123&Port=7777&Action=info

は当初、私は応答がJSON文字列のいくつかの種類だと思ったが、いくつかのグーグル後、私ははstdClassについてStackOverflowの上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";} 
+0

それはJSON文字列ではありません。 –

+4

[this one](https://eval.in/729960)のような小さなPHPスクリプトを書いて、代わりにC#でJSON文字列を取得する方が良いでしょう。おそらく、C#phpオブジェクトのunserializerを書くよりも簡単です。 – apokryfos

+0

またはhttps://sourceforge.net/projects/csphpserial/が動作する可能性があります – apokryfos

答えて

1

Sharp Serialization Libraryを使用してみてください。

その説明を1として:「シャープシリアルライブラリ(シリアル化し、プリミティブ、のArrayListやハッシュテーブルをデシリアライズ、PHPのシリアル化と互換性のある)」

関連する問題