Кто-нибудь знает, как сериализовать объект как следующий код с помощью Json.NET?Сериализовать объект с использованием Json.NET с допустимым форматом javascript
class Program
{
static void Main(string[] args)
{
var dic = new Dictionary<string, object>();
dic.Add("key", true);
dic.Add("create", false);
dic.Add("title", "Name");
dic.Add("option2", @"function(value){ return value; }");
dic.Add("fields", new Dictionary<string, object>
{
{"Id", new Dictionary<string, object>
{
{"title", "This is id"}
}
}
});
Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(dic, Formatting.Indented));
}
}
выхода Результата является JSON строки:
{
"key": true,
"create": false,
"title": "Name",
"option2": "function(value){ return value; }",
"fields": {
"Id": {
"title": "This is id"
}
}
}
Но я ожидаю, как следующий код (он выглядит яваскрипт хэш):
{
key: true,
create: false,
title: "Name",
option2: function(value){ return value; },
fields: {
Id: {
title: "This is id"
}
}
}
Код ниже покажет как я ожидаю. Но мне нужно другое решение. Пожалуйста, помогите мне. Спасибо
private static void SerializeObject(IDictionary<string, object> dic)
{
Console.WriteLine("{");
foreach (var key in dic.Keys)
{
var value = dic[key];
if (value is JsFunction) // just a wrapper class of string
{
Console.WriteLine("{0}: {1}", key, value);
}
else if (value is IDictionary<string, object>)
{
Console.WriteLine("{0}:", key);
SerializeObject(value as IDictionary<string, object>);
}
else
{
Console.WriteLine("{0}: {1}", key, JsonConvert.SerializeObject(dic[key]));
}
}
Console.WriteLine("}");
}
Ваш ожидается обозначение является недействительным JSON. –
Да, я использую его как переменную javascript. Таким образом, недопустимый JSON не является проблемой. – Martinez
Итак, ваш вопрос связан с тем, как генерировать javascript, а не сериализовать на json ... Этот вопрос может быть интересным для вас [Функции анализа, хранящиеся как строки в объектном литерале/синтаксис JSON и различающиеся] (http://stackoverflow.com/questions/16767431/parsing-functions-stored-as-strings-in-object-literal-json-syntax-and-differetia) – t3chb0t