Код: Выделить всё
//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; }
}
Код: Выделить всё
[{"FirstKey":val1,"SecondKey":val2,"ThirdKey":val3}
, {"FirstKey":val4,"SecondKey":val5,"ThirdKey":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
Мобильная версия