#c# #json #mono
#c# #json #моно
Вопрос:
Код для воспроизведения:
JsonPrimitive a = new JsonPrimitive("<a href=""/>");
//or the same: JsonPrimitive a = new JsonPrimitive(@"<a href=""/>");
Console.WriteLine(a.ToString());
//or Console.WriteLine((string)a);
//On the console screen I got: "<a href=""/>"
//Ideal: "<a href=""/>"
Версия моего System.Json.dll является ли 2.0.5.0. Это ошибка? И каково решение?
ОБНОВЛЕНИЕ от августа 2015 года: это ошибка, и она уже исправлена в MONO. Проверьте ссылку в моем ответе ниже.
Комментарии:
1. Ты хочешь сказать, что поступил
<a href=""/>
правильно?2. @MarcinSeredynski: Это трудно объяснить. Вы можете запустить мой код и увидеть результат.
Ответ №1:
Оказалось, что это ошибка в системе сборки.Json из Mono. JsonValue.cs строки 218 и 219 в методе string DoEscapeString (StringBuilder sb, string src, int cur)
.
Оригинал:
sb.Append(src[i ]);
start = i;
Исправлено:
sb.Append(src[i]);
start = i 1;
отчитался перед командой mono.
Ответ №2:
Если вы хотите получить <a href=""/>
в качестве вывода, используйте строковый параметр для конструктора следующим образом:
@"<a href=""""/>"
или
"<a href=\"\">"
и прочитайте http://msdn.microsoft.com/en-us/library/362314fe (v=VS.100).aspx