Jtable字段选项不显示json,因为它包含/(斜杠)



我的wcf项目以json形式返回国家列表,在wcf项目中使用Newtonsoft json进行解析。我在我的客户端网站上获得了基于mvc的json,我在jquery中使用jtable插件显示数据。插件无法显示,因为json包含/(反斜杠)。

要显示jtable的代码是

 Name:{
                    title: 'Country Name',
                    width: '40%',
                    options: '/Country/Index'
}

国家/地区/指数结果为

{"Result":"OK","Options":"[{"DisplayText":"India","Value":1},{"DisplayText":"Singapore","Value":2}]"}

Country/Index从wcf服务获取结果。有没有办法去掉json中的/。

编辑:我的wcf代码是

 List<JSONDisplayNameValue> lstLanguages = new List<JSONDisplayNameValue>();
//Get data from db. 
//JSONDisplayNameValue has two variables DisplayName, Value
  var json = JsonConvert.SerializeObject(lstLanguages);
        return  json;

国家/索引mvc代码为

public JsonResult Index()
    {
        string Countries_list = processsvc.GetAllCountries();
        return Json(new { Result = "OK", Options = Countries_list },  JsonRequestBehavior.AllowGet);
    }

您得到反斜杠是因为您正在对数据进行双重序列化。

  • 在WCF代码中,调用JsonConvert.SerializeObject()将国家/语言列表序列化为JSON,然后再返回
  • 在MVC控制器中,您可以调用WCF服务来获取列表,该列表已经是JSON格式的。但是,您将该JSON添加到另一个对象并调用Json(),这将导致列表再次序列化。这就是添加反斜杠的地方

要解决此问题,您要么需要

  • 在将WCF服务返回的列表添加到MVC结果之前,先对其进行反序列化。

    --或--

  • 找到一种检索国家/语言列表的方法,而无需将其序列化为JSON。然后将未序列化的列表添加到MVC结果中,并将其正常序列化。

相关内容

  • 没有找到相关文章

最新更新