Запись неизвестного кол-ва json в файл

170
02 ноября 2018, 00:10

Есть такой код:

class CheckPoints
{
    public CheckPoint_Information CheckPoint_Info { get; set; }
}
class CheckPoint_Information
{
    public float Position_x { get; set; }
    public float Position_y { get; set; }
    public float Position_z { get; set; }
    public float Car_Speed { get; set; }
    public float Car_Rotation { get; set; }
}

   CheckPoints check = new CheckPoints();
    public void Write_CheckPoint(String JSON)
    {
        check.CheckPoint_Info = new CheckPoint_Information()
        {
            Car_Rotation = 1f
        };

        string serialized = JsonConvert.SerializeObject(check);
        try{
        using (StreamWriter SW = new StreamWriter(@"C:\Users\Andrey\Desktop\Checkpoints.json", true))
        {
            SW.WriteLine(serialized);
        }
    }

На выходе получается такой текст в файле:

{"CheckPoint_Info":{"Position_x":0.0,"Position_y":0.0,"Position_z":0.0,"Car_Speed":0.0,"Car_Rotation":1.0}}
{"CheckPoint_Info":{"Position_x":0.0,"Position_y":0.0,"Position_z":0.0,"Car_Speed":0.0,"Car_Rotation":1.0}}
{"CheckPoint_Info":{"Position_x":0.0,"Position_y":0.0,"Position_z":0.0,"Car_Speed":0.0,"Car_Rotation":1.0}}

Короче, получается всякая неразбериха.

Как сделать так, чтобы можно было записать в массив JSON неизвестное кол-во строк, дабы потом это можно было прочитать?

Типа такого:

"CheckPoints":[
{
"x":123123,
"y":321321,
"z":321132
},
{
"x":222,
"y":333,
"z":444
},
//и т.д, неизвестно, сколько таких столбцов будет
]

Заранее спасибо

Answer 1

Попробуйте CheckPointInformation записать в List сериализуйте CheckPointStorage

class CheckPointStorage
{
    public List<CheckPointInformation> CheckPoints { get; set; }
}
class CheckPointInformation
{
    public float X { get; set; }
    public float Y { get; set; }
    public float Z { get; set; }
    public float CarSpeed { get; set; }
    public float CarRotation { get; set; }
}

Также можно поменять название какого-либо свойство используя JsonPropertyAttribute

class CheckPointInformation
{
    [JsonProperty("PointX")]
    public float X { get; set; }
    [JsonProperty("PointX")]
    public float Y { get; set; }
    [JsonProperty("PointZ")]
    public float Z { get; set; }
    public float CarSpeed { get; set; }
    public float CarRotation { get; set; }
}
READ ALSO
Обновление DataGrid WPF

Обновление DataGrid WPF

Работаю с LINQ TO SQLПри вызове функции DeleteOnSubmit(Data

144
Нажатие на элемент anglesharp

Нажатие на элемент anglesharp

Как нажать на элемент, а потом спарсить после нажатия? Я написал, но у меня почему-то ничего не меняется

222
Передача значения INPUT методом POST

Передача значения INPUT методом POST

пишу сайт в котором есть форма из 5 инпутов и одной кнопкине понимаю почему данные с формы не отправляются на почту, да и вообще на сайте вываливается...

178