Как записать значение одного свойства json в одну строку? - PullRequest
0 голосов
/ 28 марта 2019

Необходимо записать значение свойства "Координаты" в json без переносов для следующих строк, не используя ToString () (без преобразования значения в строку).Желаемый результат показан ниже.

{
          "Id": null,
          "Style": "1234",
          "Geometry": {
            "Type": "Polygon",
            "Coordinates": [[[47541.470259278358,6846.8710054924586],[47540.359922950891,6845.4552435801925],[47541.470259278358,6846.8710054924586]]],
            "Properties": [
              {
                "PointType": "Straight"
              },
              {
                "PointType": "Straight"
              },
              {
                "PointType": "Straight"
              }
            ]
       }
}

, но не:

{
          "Id": null,
          "Style": "1234",
          "Geometry": {
            "Type": "Polygon",
            "Coordinates": "[[[47541.470259278358,6846.8710054924586],[47540.359922950891,6845.4552435801925],[47541.470259278358,6846.8710054924586]]]",
            "Properties": [
              {
                "PointType": "Straight"
              },
              {
                "PointType": "Straight"
              },
              {
                "PointType": "Straight"
              }
            ]
       }
}

Функция, которая сериализует соответствующий объект класса в json:

JToken ToJson()
        {
            using (var writer = new JTokenWriter()) {
                JsonSerializer serializer = new JsonSerializer();
                serializer.Serialize(writer, this);
                return writer.Token;
            }
        }

1 Ответ

0 голосов
/ 28 марта 2019

похоже, ваш второй случай содержит свойство Coordinates как сериализованную строку.

почему бы не использовать var string = JsonConvert.SerializeObject(YourObject)?

Но вы должны установить https://www.nuget.org/packages/Newtonsoft.Json/ first

Вы можете использовать строковый тип для свойств, где вам нужны двойные кавычки, и использовать массив или число, если вам это не нужно

...