使用C#编写带有新行顺序的Json文件

时间:2016-01-10 20:54:24

标签: c# json serialization json.net newline

我正在编写代码,我可以使用多种数据(如shorttext,Geocoordinates和image)序列化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);

    }

1 个答案:

答案 0 :(得分:1)

尝试替换此代码:

string json = JsonConvert.SerializeObject(Poi);

有了这个:

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