2016-01-10 4 views
0

Я пишу код, который я могу сериализировать JSON-файл с несколькими данными, такими как shorttext, Geocoordinates и image. Но после его создания он будет показан в большой строке. Но я хочу организовать его с помощью нового линейного заказа. Но я не могу сгенерировать его. Кодекс я использую здесь это-Запишите файл Json с новым порядком строк, используя C#

public class GeoCoordinates 
{ 
    public double Longitude { get; set; } 
    public double Latitude { get; set; } 
} 

public class POIData 
{ 
    public string Shorttext { get; set; } 
    public GeoCoordinates GeoCoordinates { get; set; } 
    public List<string> Images { get; set; } 


} 

Теперь мой класс, где я использую эти классы является

public GeoCoordinates GeosFromString(string path) 
    { 
     string[] lines = File.ReadAllLines(path); 
     GeoCoordinates gc = new GeoCoordinates(); 
     gc.Latitude = Double.Parse(lines[0].Substring(4)); 
     gc.Longitude = Double.Parse(lines[1].Substring(4)); 
     return gc; 
    } 
    public void ToJsonForLocation(string name) 
    { 
     var startPath = Application.StartupPath; 
     string folderName = Path.Combine(startPath, "Text_ImageWithHash"); 

     System.IO.Directory.CreateDirectory(folderName); 

     string fileName = name + ".json"; 
     var path = Path.Combine(folderName, fileName); 
     var Jpeg_File = new DirectoryInfo(startPath + @"\Image\" + name).GetFiles("*.jpg"); 

     POIData Poi=new POIData(); 
     Poi.Shorttext = File.ReadAllText(startPath + @"\Short Text\" + name + ".txt"); 
     Poi.GeoCoordinates=GeosFromString(startPath + @"\Latitude Longitude\" + name + ".txt"); 
     Poi.Images=new List<string> { Jpeg_File[0].Name}; 

     string json = JsonConvert.SerializeObject(Poi); 
     File.WriteAllText(path , json); 

    } 

ответ

1

Попробуйте заменить этот код:

string json = JsonConvert.SerializeObject(Poi); 

С этим:

string json = JsonConvert.SerializeObject(Poi, Formatting.Indented); 
+0

Спасибо за ваш ответ. оно работает. – Nowshin

Смежные вопросы