如何将列表序列化为不带字符“ \”的json?

时间:2018-09-27 21:04:12

标签: c# json jsonserializer

我正在尝试将对象列表序列化为json,但是在json中,所有数据成员都由“ \”括起来。 例如,我的对象是:

public class ResObject
{
    public double productPrice { get; set; }
    public string productName { get; set; }
    public double distance { get; set; }
    public string fullAddress { get; set; }
    public string fullStoreName { get; set; }
    public string promotion { get; set; }
}

生成的json是:

"[{\"productPrice\":4,\"productName\":\"Milk\",\"distance\":0,\"fullAddress\":\"UK\",\"fullStoreName\":\"LiaStore\",\"promotion\":null},...]"

我使用了以下代码:

string json = JsonConvert.SerializeObject(Products, Formatting.None);

OR

var json = new JavaScriptSerializer().Serialize(Products);

OR

    //Create a stream to serialize the object to.  
    MemoryStream ms = new MemoryStream();

    // Serializer the User object to the stream.  
    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<ResObject>));
    ser.WriteObject(ms, Products);
    byte[] json = ms.ToArray();
    ms.Close();

    return Encoding.UTF8.GetString(json, 0, json.Length);

但是它没有帮助:(

(产品为List<ResObject> Products

谢谢!

编辑:我已修复它,问题是我序列化了列表并返回了它,并且由于它是WebAPI,因此出现了问题。解决方法是返回列表并删除序列化。

1 个答案:

答案 0 :(得分:-1)

让我猜测...您在调试器中查看了字符串。 只需将其打印到控制台或将其写入文件,您就会发现这些“ \”已经消失。

这只是调试器中显示的转义字符。

这样,您可以在字符串中放入“”。