代码之家  ›  专栏  ›  技术社区  ›  user474901

如何从嵌套值中删除双引号和\

  •  0
  • user474901  · 技术社区  · 10 年前

    我写了一段代码将列表转换为json,但我有一个问题。当我测试web方法时,我发现 " \ 添加到嵌套对象。我想知道如何使用 JavaScriptSerializer() .

    var innerResult (linq query to get list of data).toList()
    var serializer = new JavaScriptSerializer();
    var serializedResult = serializer.Serialize(innerResult);
    result = (from value1 in db.Values
              join value2 in db.Values on value1.ParentId equals value2.RecordId
              join value3 in db.Values on value1.RecordId equals value3.ParentId
              where
                  value1.ParentId
                  == (from va in db.Values where va.Name == formType select va.RecordId).FirstOrDefault()
              orderby value1.RecordId
              select
                  new ItemManagementViewModel
                      {
                          FormType = value2.Name,
                          FormControllerID = value1.RecordId,
                          FormControllerName = value1.Name,
                          values = serializedResult
                      }).ToList();
    return result;
    
    public class ItemManagementViewModel 
    {
        public string FormType { get; set; }
        public long FormControllerID { get; set; }
        public string FormControllerName { get; set; }
    
        public string values { get; set; }
    }
    

    json fomat update如何删除方括号前的双引号字符串“[{\

    {
         "formType": "registarForm",
         "formControllerID": 2,
         "formControllerName": "Conditions",
         "values": "[{\"recordId\":14,\"name\":\"Asthma\",\"parentId\":14},{\"recordId\":15,\"name\":\"Cardiac Conditions\",\"parentId\":15},{\"recordId\":16,\"name\":\"COPD\",\"parentId\":16},{\"recordId\":17,\"name\":\"CVA\",\"parentId\":17}]"
    }
    
    1 回复  |  直到 10 年前
        1
  •  0
  •   nick    10 年前

    若不需要额外的引号,则不应将内部结果序列化两次。一、 e.尝试使用下一个代码:

      select
          new ItemManagementViewModel
              {
                  FormType = value2.Name,
                  FormControllerID = value1.RecordId,
                  FormControllerName = value1.Name,
                  values = innerResult
              }).ToList();
    

    并将“值”的类型更改为适当的值,即List或YourEntitys