相关疑难解决方法(0)

序列化我的实体时Json.Net意外字符("\")

我正在使用优秀的Json.Net库来序列化由实体框架生成的实体.我使用以下代码来执行此操作:

using (MyVoucherEntities context = new MyVoucherEntities())
{
  List<MyObject> list = context.MyObjects.ToList();
  string json = JsonConvert.SerializeObject(list);
}
Run Code Online (Sandbox Code Playgroud)

一切顺利我的意思是,对象被正确序列化除了一个想法:它添加转义字符"\",这使我在客户端反序列化时遇到噩梦.

 [
     {
         \"$id\": \"1\",
         \"CreationDate\": \"\\\/Date(1293186324257+0000)\\\/\",
        \"ImageUrl\": \"http:\/\/www.google.com\",
         \"Title\": \"Here is a title\"
     } ]
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么以及如何摆脱这些转义字符斜杠"\"?

c# wcf entity-framework json.net

23
推荐指数
2
解决办法
5万
查看次数

ServiceStack默认格式

我想将ServiceStack的默认格式设置为JSON,而不是从浏览器访问服务时通常返回的HTML格式的响应.我知道这可以通过发送?format = json参数或将Accept标头设置为application/json在每个请求中指定.有没有办法改变这一点,而不必依赖请求中的这些提示?

.net c# servicestack

21
推荐指数
1
解决办法
7844
查看次数

获取ServiceStack以保留类型信息

我正在使用ServiceStack将一些对象序列化和反序列化为JSON.考虑这个例子:

public class Container
{
    public Animal Animal { get; set; }
}

public class Animal
{
}

public class Dog : Animal
{
    public void Speak() { Console.WriteLine("Woof!"); }
}

var container = new Container { Animal = new Dog() };
var json = JsonSerializer.SerializeToString(container);
var container2 = JsonSerializer.DeserializeFromString<Container>(json);

((Dog)container.Animal).Speak(); //Works
((Dog)container2.Animal).Speak(); //InvalidCastException
Run Code Online (Sandbox Code Playgroud)

最后一行抛出InvalidCastException,因为Animal字段被实例化为Animal类型,而不是Dog类型.有什么办法可以告诉ServiceStack保留这个特定实例属于Dog类型的信息吗?

.net c# serialization json servicestack

20
推荐指数
1
解决办法
9339
查看次数

标签 统计

c# ×3

.net ×2

servicestack ×2

entity-framework ×1

json ×1

json.net ×1

serialization ×1

wcf ×1