我正在尝试使用Json.NET将列表序列化为json字符串,但返回字符串中包含反斜杠,这反过来使json解析失败。
var x = from d in entities.Books.ToList()
select new
{
ID = d.ID,
BookName = d.BookName
};
return JsonConvert.SerializeObject(x.ToList());
上面的代码返回
"[{\"ID\":1,\"BookName\":\"MVC Music Store - Tutorial - v3.0\"},{\"ID\":2,\"BookName\":\"Pro.ASP.NET.MVC.3.Framework\"},{\"ID\":3,\"BookName\":\"Application Architecture Guide v2\"},{\"ID\":4,\"BookName\":\"Gang of Four Design Patterns\"},{\"ID\":5,\"BookName\":\"CS4 Pocket Reference\"}]"
这将导致所有JSON解析失败。如何删除这些。
不,不是
class Program
{
class Book
{
public int ID;
public string BookName;
}
static void Main()
{
var books = new List<Book> { new Book { ID = 1, BookName = "A" }, new Book { ID = 2, BookName = "B" } };
var x = from d in books
select new
{
ID = d.ID,
BookName = d.BookName
};
string str = JsonConvert.SerializeObject(x.ToList());
Console.WriteLine(str);
}
}
可能有两个问题:
A)您正在查看调试器的结果。为了检查这一点,将其JsonConvert
放入一个临时变量中(就像我所做的一样),然后使用调试器进行查看。单击沙漏右箭头,然后选择Text Visualizer
。
要么
B)调用方法将对象 再次 转换为Json,因此转义了所有内容。
问题内容: 我有这个字符串: 我正在反序列化对象: 该对象看起来像: 并尝试创建字典: 但得到。 可能是什么问题? 问题答案: 请参阅mridula的答案,了解为什么您会得到null。但是,如果您想直接将json字符串转换为字典,则可以尝试以下代码段。
有没有一种方法可以正确地反序列化以双引号开头和结尾的JSON字符串? 数据以流的形式输入(来自AWS S3对象)。这是流的内容(注意开头和结尾的双引号字符): JsonSerializer似乎没有正确地反序列化它。但是,对于以下内容,其工作原理与预期一致: 以下是片段:
我调用一个Web服务来获取JSON字符串响应,它包含的反斜杠不是原始字符串。下面是我请求JSON字符串对象的代码,它是:{“name”:“name”,“id”:1} 在后执行中,我只是尝试将这个resush字符串解析为JSONObject。 Rsponse字符串是:“{\'name\':\'name\',\'id\':1}”,当我试图将其解析为JSONObject时,它会抛出一个异常:org。js
我正在Jersey上构建REST服务,并使用Jackson从我模型的java类生成JSON。模型具有绝对简单的值,我认为这是最典型的情况。但我得到了奇怪的结果: 我的期待结果: 我的字段源值不包含任何特殊字符。这些是简单的单词。 这是我的Java类。实体: Rest服务等级: 我尝试使用注释JsonRawValue来表示字符串属性: 但在这种情况下,结果是: 我期望: 很明显,Jackson以某种
问题内容: 类型1(docs链接): 类型2(docs链接): 尽管以上两种类型都能完成任务,但这些实现之间有什么区别? 问题答案: 构造之后,两者都调用相同的反序列化功能,因此唯一的区别是泛型类型的处理方式。 第二个是完全静态的,因此类型必须在编译类型中是已知的,并且不能改变。因此,它类似于使用基本Class文字。 第一个是动态的,因此可以用于构造因其参数设置而变化的事物。 就我个人而言,我更喜
问题内容: 将对象反序列化为()时,嵌套对象反序列化为s。是否可以强制将嵌套对象反序列化为s? 问题答案: 我找到了一种通过提供实现将所有嵌套对象转换为的方法: 文档: Json.NET的CustomCreationConverter