私はJSONデータをデシリアライズトラブルを抱えている、私は他のJSONデータで正常に使用しています。このコードを持っている:デシリアライズJSONデータ
string url = string.Format("http://farmsense-prod.apigee.net/v1/moonphases/?d=1494981184");
var http = new HttpClient();
var response = await http.GetAsync(url);
var result = await response.Content.ReadAsStringAsync();
var serializer = new DataContractJsonSerializer(typeof(Lunar_data.RootObject));
var ms = new MemoryStream(Encoding.UTF8.GetBytes(result));
var data_moon = (Lunar_data.RootObject)serializer.ReadObject(ms);
return data_moon;
このコードは唯一のnull値が返されます!ここで
public class Lunar_data
{
public class RootObject
{
[JsonProperty("Error")]
public int Error { get; set; }
[JsonProperty("ErrorMsg")]
public string ErrorMsg { get; set; }
[JsonProperty("TargetDate")]
public string TargetDate { get; set; }
[JsonProperty("Moon")]
public IList<string> Moon { get; set; }
[JsonProperty("Index")]
public int Index { get; set; }
[JsonProperty("Age")]
public double Age { get; set; }
[JsonProperty("Phase")]
public string Phase { get; set; }
[JsonProperty("Distance")]
public double Distance { get; set; }
[JsonProperty("Illumination")]
public double Illumination { get; set; }
[JsonProperty("AngularDiameter")]
public double AngularDiameter { get; set; }
[JsonProperty("DistanceToSun")]
public double DistanceToSun { get; set; }
[JsonProperty("SunAngularDiameter")]
public double SunAngularDiameter { get; set; }
}
}
で生成された私のクラスであり、これは本当に簡単で、まだ私はそれが権利を取得することができない私のJSONデータである:
最後に[{"Error":0,"ErrorMsg":"success","TargetDate":"1350526582","Moon":["Hunter's\/Harvest Moon"],"Index":2,"Age":2.9555953469264,"Phase":"Waxing Crescent","Distance":363325.22,"Illumination":0.1,"AngularDiameter":0.54815395361483,"DistanceToSun":149016616.79983,"SunAngularDiameter":0.53520976935835}]
いくつかの検索の後に私はNewtonsoft.Jsonを使用していくつかの人々を見つけましたが、jsonデータのこれらの引用符のために使用できませんでした。
Newtonsoft.Jsonを使用しようとしましたか? –
私はそれを使用することができませんでした、私は何とかjsonデータのそれらの引用符を扱う必要があります! – khalefa
@khalefa、Newtonsoft.Jsonがこれらの引用符を扱うことができないと主張するのは、Newtonsoft.JsonがJsonを全く扱うことができないということです。誰が知っていた... ;-) – elgonzo