簡體   English   中英

使用C#以新的行順序寫入Json文件

[英]Write Json file with new line order using C#

我正在編寫代碼,可以用多個數據(如短文本,地理坐標和圖像)序列化JSON文件。 但是生成后,它將顯示為一行。 但是我想用新的行順序來組織它,但是通過我的代碼我無法生成它。 我在這里使用的代碼是-

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);

    }

嘗試替換此代碼:

string json = JsonConvert.SerializeObject(Poi);

有了這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM