Как создать JSON из строк без создания специального класса с использованием библиотеки JSON.NetC#

Место общения программистов C#
Ответить
Anonymous
 Как создать JSON из строк без создания специального класса с использованием библиотеки JSON.Net

Сообщение Anonymous »

У меня есть метод, с помощью которого я пытаюсь создать строку JSON:

Код: Выделить всё

//my current file
using Newtonsoft.Json;
string key1 = "FirstKey";
string key2 = "SecondKey";
string key3 = "ThirdKey";
private string CreateJson(string val1,  string val2, string val3,string val4,  string val5, string val6)
{
//process the six arguments and three key-related member variables to create a JSON array
//don't want to use JsonConvert.SerializeObject the way I'm doing below as it requires creating a class

var configs = new List
{ new CustomClass{ FirstKey = val1,SecondKey= val2,ThirdKey= val3}
, new CustomClass{ FirstKey= val4,SecondKey= val5,ThirdKey = val6}
};
var jsonData = JsonConvert.SerializeObject(configs);
return jsonData;
}

//A class in another file
public class CustomClass
{
public string FirstKey { get; set; }
public string SecondKey{ get; set; }
public string ThirdKey{ get; set; }

}
Я пытаюсь создать массив JSON, используя JSON.Net. Ожидаемый результат следующий:

Код: Выделить всё

[{"FirstKey":val1,"SecondKey":val2,"ThirdKey":val3}
, {"FirstKey":val4,"SecondKey":val5,"ThirdKey":val6}]
Здесь значения от val1 до val6 должны быть заменены значениями аргументов во время выполнения.
Первоначально, поскольку существовало всего три типа строковых пар ключ-значение, поэтому я подумал, что было бы довольно просто создать строку JSON, просто используя строковые литералы и добавляя их один за другим в формате JSON. Но вскоре я наткнулся на мир escape-символов, которые могут деформировать строку JSON, например. \r.
Раньше я использовал библиотеку JSON.Net просто для сериализации и десериализации объектов с использованием класса JSONConvert, но меня это не волновало, и я совершенно не знал об этом. Об этой обработке escape-символов библиотекой JSON.Net мы следим за тем, чтобы строка JSON оставалась действительной.
В любом случае, возвращаясь к моей проблеме. Мне удалось решить свою проблему, создав собственный класс с тремя свойствами FirstKey, SecondKey и ThirdKey. Затем создайте объект класса, затем присвойте значения аргументам val1 и val2, а затем используйте API JsonConvert.SerializeObject.
Мне нужен очень простой способ создания строки JSON с использованием пакета JSON.Net NuGet без использования пользовательских классов. Создание класса CustomClass здесь кажется накладными расходами. Я ищу что-то вроде StringBuilder.Append API, если оно доступно в библиотеке JSON, которую я использую. Я не уверен, что мне не хватает какого-либо API в JSON.Net.


Подробнее здесь: https://stackoverflow.com/questions/448 ... json-net-l
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»