我正在使用JSON.NET库将C#列表转换为JSON。当我快速查看对象后将其转换后,我可以在每个属性中看到额外的“ \”。我通过控制器(asp.net MVC控制器)将此数据发送到JavaScript客户端之一。发送数据时,数据带有额外的“ \”。如何删除这些多余的“ \”?
我的控制器:
public class MyController : myBase
{
public string Get(string id = null, string userName = null)
{
List<Data> dataList = new List<Data>();
Data d = new Data();
d.Name = "FireFox";
d.Folder = @"Testing\Mac OSX";
dataList.Add(d);
d = new Data();
d.Name = "Safari";
d.Folder = @"Testing\Mac OSX";
dataList.Add(d);
d = new Data();
d.Name = "Chrome";
d.Folder = @"Testing\Mac OSX";
dataList.Add(d);
d = new Data();
d.Name = "FireFox";
d.Folder = @"Testing\Windows";
dataList.Add(d);
d = new Data();
d.Name = "Safari";
d.Folder = @"Testing\Windows";
dataList.Add(d);
d = new Data();
d.Name = "Chrome";
d.Folder = @"Testing\Windows";
dataList.Add(d);
d = new Data();
d.Name = "Internet Exploder";
d.Folder = @"Testing\Windows";
dataList.Add(d);
d = new Data();
d.Name = "Chrome";
d.Folder = @"Testing\Linux";
dataList.Add(d);
d = new Data();
d.Name = "Firefox";
d.Folder = @"Testing\Linux";
dataList.Add(d);
d = new Data();
d.Name = "Testing First Child";
d.Folder = @"Testing";
dataList.Add(d);
d = new Data();
d.Name = "First Child";
d.Folder = null;
dataList.Add(d);
Node root = new Node();
foreach (Data da in dataList)
{
Node parent = root;
if (!string.IsNullOrEmpty(da.Folder))
{
Node child = null;
foreach (string part in da.Folder.Split(new char[] {'\\'}, StringSplitOptions.RemoveEmptyEntries))
{
string name = part.Trim();
child = parent.children.Find(n => n.Name == name);
if (child == null)
{
child = new Node {Name = name};
parent.children.Add(child);
}
parent = child;
}
}
//Always adds the leaf node.
parent.children.Add(new Node {Name = da.Name});
}
string output = JsonConvert.SerializeObject(root);
return output;
}
}
public class Data
{
public string Name { get; set; }
public string Folder { get; set; }
}
class Node
{
public Node()
{
children = new List<Node>();
}
public List<Node> children { get; set; }
public string Name { get; set; }
public bool leaf { get; set; }
public bool expanded { get; set; }
}
firefox中的数据---其他控制器正在返回不带'\'的数据
额外的 '\'
如何删除这些“ \”?
您正在以JSON序列化对象,然后通过方法返回此字符串-现在它是对象的字符串表示形式。然后,JSON Web服务API会使用此字符串,并对它进行编码以确保它是有效的JS字符串-因此所有引号都转义了。
基本上,您正在执行双重编码。代替字符串,直接返回根对象,一切就可以了:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句