0

このjsonファイルを逆シリアル化しようとしています:

{
   "result":
     {
        "car1":{"lat":37.989728,"long":23.664633},
        "car2":{"lat":38.008027,"long":23.774068}
     }
}

私はこのように試しました:

public static void parseJson(string data)
{
     Result all = JsonConvert.DeserializeObject<Result>(data);  
}

public class Result
{
     public Car Car { get; set; }
}

public class Car
{
     public string lat { get; set; }
     public string lon { get; set; }
}

しかし、オブジェクトallはnullのままです

4

3 に答える 3

2

JSON のオブジェクトにはcar1との 2 つのプロパティcar2があるため、マッピング先のクラス ( Result) にはこれら 2 つのプロパティが必要です。

public class Result
{
     public Car car1 { get; set; }
     public Car car2 { get; set; }
}

以下のコメントを再確認してください。

わかりましたが、これらの 2 台の車は一例です。実際には、車の数はjsonを取得するたびに異なります

その場合、配列を使用するように JSON を変更する必要があります。

{
   "result":
     {
        cars: [
            {"lat":37.989728,"long":23.664633},
            {"lat":38.008027,"long":23.774068}
        ]
     }
}

そして、Resultクラスは次のようになるべきだと思います:

public class Result
{
     public List<Car> cars { get; set; }
}

またはおそらく

public class Result
{
     public Car[] cars { get; set; }
}

(車以外に何もない場合は、中間オブジェクトを取り除くことができる場合があります。)

于 2013-10-04T10:23:48.743 に答える