3

Json.net はオブジェクトを逆シリアル化するのに便利ですが、それを使用して string や int などの単純な型を逆シリアル化する方法がわかりません。

私がそれを正しくやったかどうかわからない、助けてください、ありがとう!

WCF の戻り文字列は次のようになります

{"PingResult":100}

コールする場合

int result = JsonConvert.DeserializeObject<int>(jsonString);

ユニティスロー

JsonReaderException: Error reading integer. Unexpected token: StartObject. Path '', line 1, position 1.
Newtonsoft.Json.JsonReader.ReadAsInt32Internal ()
Newtonsoft.Json.JsonTextReader.ReadAsInt32 ()
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType (Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonContract contract, Boolean hasConverter)
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, Boolean checkAdditionalContent)
4

2 に答える 2

3

整数ではなく、整数プロパティを含むオブジェクトを逆シリアル化しています。逆シリアル化が機能するには、次のようなクラスを提供する必要があります。

class Ping
{
    public int PingResult {get; set;}
}

そして電話する

Ping ping = JsonConvert.DeserializeObject<Ping>(jsonString);
int result = ping.PingResult;

別のアプローチは、JObject apiを使用することです。

string json="{\"PingResult\":100}"; 
JObject jo = JObject.Parse(json); 
JToken jToken = jo["PingResult"];
int result = (int)jToken;
于 2013-08-08T13:06:43.493 に答える