2017-08-02 53 views
0

私はthisのような他のいくつかの質問を見ましたが、私の問題は互換性がありません。空のJSON文字列を返すJsonConvert.SerializeObject

私はList<LatLng>というfireHazardsListというJSON文字列に変換したいと思っています。 LatLngオブジェクトはfloat latitude, longitudeです。私はJsonConvert.SerializeObjectを使用してListJSON stringに変換しようとしていますが、このコードを実行すると現在JSONは空です。

LatLngは、私は確かにステップをしないのですが、私は、私が行方不明です何をJSONに新しいとわからないよXamarin Android.Gms.Maps.Model;で見つかったclass

fireHazardsList = new List<LatLng>(); 
populateHazardList(); 
string coordinates = JsonConvert.SerializeObject(fireHazardsList, Formatting.Indented); 

です。現在、私が返されていますJSON文字列は次のようである:ここでは

[{},{},{}] 

は私のリストはSerializeObject()関数が呼び出される直前に取り込まれていることを示すスクリーンショットです。

enter image description here

+0

あなたは 'LatLng'クラス –

+0

のクラスのプロパティを追加することができますどのようなpopulateHazardList後fireHazardsList.Any()の戻りしていますか? trueの場合、LatLngのコードを指定する必要があります。 – Mick

+0

'LatLng'クラスのjson文字列とプロパティを追加できますか? –

答えて

2

ほとんどのLatLngクラスは、JSONのレンダリングが空である理由である、get;set;性質を持っていません。

これはその場でプロパティを作成してください:

string coordinates = JsonConvert.SerializeObject(
    fireHazardsList.Select(ll => new { ll.latitude, ll.longitude }), 
    Formatting.Indented); 
+0

ありがとう、私はこれを試してみる –

-1

次のコード平和が正しく私のために働い: -

以下
List<LatLng> l = new List<LatLng>() ; 
     l.Add(new LatLng { latitude=0.090f, longitude=90.8f}); 
     string s = JsonConvert.SerializeObject(l); 

私の緯度経度のクラスです

​​
0

あなたの問題は)(populateHazardListのどこかにあります。これは、期待どおりのデータを入力していません。あなたがこれを見ているという事実:

[{},{},{}] 

...シリアライズが正しく起こっていることを示しているが、データがありません。理由を理解する必要があります。

[DataContract] 
    public class LatLang 
    { 
    [DataMember(Name = "lat")] 
     public string Latitude { get; set; } 

     [DataMember(Name = "longi")] 
     public string Longitude { get; set; } 
    } 

をデータがあなたには、いくつかの他のJSONシリアライザを選択する必要があります属性を使用できるようにするために:あなたは適切なモデルを用意する必要がある最初の正しいJSONを作成するには

+0

クリス、私は私のリストが間違いなくあることを示すために私の答えを更新しました人口が多い –

0

。たとえば、DataContractJsonSerializerまたはJson.NETです。

LatLang latlangObj = new LatLang 
{ 
    Latitude = "something", 
    Longitude = "something" 
}; 


string jsonString = JsonConvert.SerializeObject(
new 
{ 
    jsonString = latlangObj 
}); 

のでjsonString変数は次のようになります。

{ 
"jsonString ": { 
"lat": "something", 
"longi": "someting" 
} 
} 
関連する問題