Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ServiceStack使用制表符和新行反序列化json_C#_Json_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,C#,Json,servicestack" /> servicestack,C#,Json,servicestack" />

C# ServiceStack使用制表符和新行反序列化json

C# ServiceStack使用制表符和新行反序列化json,c#,json,servicestack,C#,Json,servicestack,我有读取JSON内容的代码: using (var reader = new StreamReader(path)) { return TypeSerializer.DeserializeFromReader<Symulacja>(reader); } 我喜欢格式化文件: { Width: 1 , Height: 1 } 但是TypeSerializer.DeserializeFromReader无法解析它,并在Symulacja属性中设置null。之所以

我有读取JSON内容的代码:

using (var reader = new StreamReader(path))
{
    return TypeSerializer.DeserializeFromReader<Symulacja>(reader);
}
我喜欢格式化文件:

{
    Width: 1
    , Height: 1
}

但是
TypeSerializer.DeserializeFromReader
无法解析它,并在
Symulacja
属性中设置
null

之所以会发生这种情况,是因为TypeSerializer类从一种称为JSV(JSON+CSV)的混合格式进行序列化和反序列化,该混合格式与JSON不同。更多详情,请阅读帖子


您可以使用JSON.Net等其他库来反序列化JSON数据。

您可以这样做,首先尝试在此处解析JSON字符串\

如果它经过那里,那么就去。。。粘贴你的字符串。。。它将生成一个具有属性的类

然后

将类粘贴到代码中。并为类创建新对象

并调用反序列化

JavaScriptSerializer js = new JavaScriptSerializer();
   var Data = DeserializeFromJson<Test>("Json String");
public T DeserializeFromJson<T>(string json)
{
    System.Web.Script.Serialization.JavaScriptSerializer ObjJSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    T deserializedProduct = ObjJSerializer.Deserialize<T>(json);
    return deserializedProduct;
}
 public class Test
{
    public int Width { get; set; }
    public int Height { get; set; }
}
JavaScriptSerializer js=新的JavaScriptSerializer();
var Data=DeserializeFromJson(“Json字符串”);
public T反序列化fromJSON(字符串json)
{
System.Web.Script.Serialization.JavaScriptSerializer ObjJSerializer=新的System.Web.Script.Serialization.JavaScriptSerializer();
T deserializedProduct=ObjJSerializer.Deserialize(json);
返回反序列化的产品;
}
公开课考试
{
公共整数宽度{get;set;}
公共整数高度{get;set;}
}

使用ServiceStack的JsonSerializer序列化JSON,而不是:


没错:它不是JSON。也许有一些开关:读/写人类可读的文件?我没有看到一个秘密开关。我相信
ServiceStack.Text
的性能在很大程度上依赖于使用这种特定的格式。它仍然是人类可读的,但不可编辑。
JavaScriptSerializer js = new JavaScriptSerializer();
   var Data = DeserializeFromJson<Test>("Json String");
public T DeserializeFromJson<T>(string json)
{
    System.Web.Script.Serialization.JavaScriptSerializer ObjJSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    T deserializedProduct = ObjJSerializer.Deserialize<T>(json);
    return deserializedProduct;
}
 public class Test
{
    public int Width { get; set; }
    public int Height { get; set; }
}
using (var reader = new StreamReader(path))
{
    return JsonSerializer.DeserializeFromReader<Symulacja>(reader);
}
string json = dto.ToJson();
MyDto json.FromJson<MyDto>();