xml转json_转出来的json值属性都带@符号 导致前端取值时失败,请教!

枕戈待旦勇往直前 2016-05-25 08:51:38
如是,流程是程序后台读取一个xml文件,然后以json的方式传回前端,然后前台通过js来展示数据。但现在遇到的问题如是所示,
调试如图1:

图1

(2)后台读取xml文件并返回代码如下:

try
{
string taskName = context.Request.Params["taskName"];
string xmlFile = SystemConfig.ReadDir(@"xmlCache\taskCache\" + taskName.ToString().Trim() + ".xml");

XmlDocument doc = new XmlDocument();
doc.Load(xmlFile);
string json = Newtonsoft.Json.JsonConvert.SerializeXmlNode(doc);
result = json;
}
catch(Exception ex){
result = ex.Message;
}

context.Response.Write(result);


但是返回前端的json对象属性都带有"@",个人在使用
result[i].ProgName //undefine
result[i].@ProgName //会提示“编译已关闭”

个人觉得应该是后台转换的JSON方式需要修改,但没有找到合适的,请指点下!

...全文
1048 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnryc 2017-03-10
  • 打赏
  • 举报
回复
引用 5 楼 cnryc 的回复:
如果有个字段是email,你是怎么处理的?
找到一个方法 var json = "{\"@a\":\"@b\"}"; json = Regex.Replace(json, @"(\s*)""@(.*)"":", @"$1""$2"":", RegexOptions.IgnoreCase); var model = JsonConvert.DeserializeObject<Root>(json); Console.WriteLine(model.a); Console.ReadLine();
cnryc 2017-03-07
  • 打赏
  • 举报
回复 1
如果有个字段是email,你是怎么处理的?
  • 打赏
  • 举报
回复
引用 1 楼 lovelj2012 的回复:
后台直接生成json,js前台遍历绑定就行呗,还搞什么xml json呢
后台就是读取相应的xml文件转成json 传递给前台的,但是前台接收到的json对象中的属性都带有@符号? 请问你说的直接生成json是我的一个意思吗? 方便的话求代码改进方法?
Justin-Liu 2016-05-26
  • 打赏
  • 举报
回复
他的意思是不取xml文件,直接就是json文件
  • 打赏
  • 举报
回复
问题,同事帮忙解决了。用下面方法即可:

string json = JsonConvert.SerializeObject(doc, Newtonsoft.Json.Formatting.Indented,
                              new JsonSerializerSettings { ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver() });

                json = json.Replace("@", "");
                result = json;
江南小鱼 2016-05-25
  • 打赏
  • 举报
回复
后台直接生成json,js前台遍历绑定就行呗,还搞什么xml json呢

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧