这几天,调用别人接口返回json数据含有特殊符号(双引号),当转换成json对象总是报错,

json字符格式如下

  1. {
  2. "BOXINFO":[
  3. {
  4. "ITEM_ID":"",
  5. "ITEM_NAME":"抗链球菌溶血素"O"(ASO)测定试剂盒(胶乳免)",
  6. "QTY":,
  7. "NOTES":"厂牌(河北恒利集团制药股份有限公司)批号(1172292)"
  8. },
  9. {
  10. "ITEM_ID":"",
  11. "ITEM_NAME":"茵栀黄颗粒",
  12. "QTY":,
  13. "NOTES":"厂牌(鲁南厚普制药有限公司)批号(00917063)"
  14. }
  15. ]
  16. }

json在线解析

如何解决json数据中属性值包含双引号问题,可用以下函数

  1. /// <summary>
  2. /// json字符串将属性值中的英文双引号变成中文双引号
  3. /// </summary>
  4. /// <param name="strJson">json字符串</param>
  5. /// <returns></returns>
  6. public string JsonReplaceSign(string strJson)
  7. {
  8. //获取每个字符
  9. char[] temp = strJson.ToCharArray();
  10. //获取字符数组长度
  11. int n = temp.Length;
  12. //循环整个字符数组
  13. for (int i = ; i < n; i++)
  14. {
  15. //查找json属性值(:+" )
  16. if (temp[i] == ':' && temp[i + ] == '"')
  17. {
  18. //循环属性值内的字符(:+2 推算到value值)
  19. for (int j = i + ; j < n; j++)
  20. {
  21. //判断是否是英文双引号
  22. if (temp[j] == '"')
  23. {
  24. //排除json属性的双引号
  25. if (temp[j + ] != ',' && temp[j + ] != '}')
  26. {
  27. //替换成中文双引号
  28. temp[j] = '”';
  29. }
  30. else if (temp[j + ] == ',' || temp[j + ] == '}')
  31. {
  32. break;
  33. }
  34. }
  35. else if (temp[j] == '-')
  36. {
  37. temp[j] = ' ';
  38. }
  39. else if (true)
  40. {
  41. // 要过虑其他字符,继续添加判断就可以
  42. }
  43. }
  44. }
  45. }
  46. return new String(temp);
  47. }

转换后的结果(上面函数是将json数据中属性值的英文双引号改成中文的)

还有另外一种方法是将json的特殊字符前加上转义字符(\),如:

  1. {
  2. "BOXINFO":[
  3. {
  4. "ITEM_ID":"",
  5. "ITEM_NAME":"抗链球菌溶血素\"O\"(ASO)测定试剂盒(胶乳免)",
  6. "QTY":,
  7. "NOTES":"厂牌(河北恒利集团制药股份有限公司)批号(1172292)"
  8. },
  9. {
  10. "ITEM_ID":"",
  11. "ITEM_NAME":"茵栀黄颗粒",
  12. "QTY":,
  13. "NOTES":"厂牌(鲁南厚普制药有限公司)批号(00917063)"
  14. }
  15. ]
  16. }

转义后结果

参考来源地址:

https://blog.csdn.net/ymlkl/article/details/41959297?utm_source=blogxgwz0

C#调用接口返回json数据中含有双引号 或其他非法字符的解决办法的更多相关文章

  1. **后台怎么处理JSON数据中含有双引号?

    http://bbs.csdn.net/topics/390578406?page=1 注意是后台,不是用js另外我这个json是直接取得别人的传过来的字符串,不是我自己拼写的,所以我自己不能做到转义 ...

  2. 如何处理JSON数据中含有双引号

    {"quality": "B"A"D"} 实际上要 value.replace("\"","\\\& ...

  3. java通过url调用远程接口返回json数据

    java通过url调用远程接口返回json数据,有用户名和密码验证, 转自 https://blog.csdn.net/wanglong1990421/article/details/78815856 ...

  4. SVN版本冲突中 Files 的值“ < < < < < < < .mine”无效路径中具有非法字符的解决办法

    .NET 中 SVN版本冲突中 Files 的值“ < < < < < < < .mine”无效路径中具有非法字符的解决办法: 一. 1.将项目逐个进行编译, ...

  5. Java之Hashmap中value为null,则返回json数据中key不存在

    前两天干活儿的时候,将实例对象放在Hashmap中返回给前端: ArtificialEntity artificialEntity = artificialService.getInfoById(id ...

  6. 服务器返回的json数据中含有null的处理方法

    个人博客:http://guohuaden.com/2017/03/06/json-dataNull/因为有遇到过类似情况,所以就想到了一些解决方法,并且实践了一下,这里简单的做个记录. 注:有看到不 ...

  7. ASP.net jQuery调用webservice返回json数据的一些问题

    之前寒假时,试着使用jQuery写了几个异步请求demo, 但是那样是使用的webform普通页面,一般应该是用 webservice 居多. 最近写后台管理时,想用异步来实现一些信息的展示和修改, ...

  8. ASP.NET WEB API 返回JSON 出现2个双引号问题

    前言          在使用ASP.NET WEB API时,我想在某个方法返回JSON格式的数据,于是首先想到的就是手动构建JSON字符串,如:"{\"result\" ...

  9. jQuery调用WebService返回JSON数据

    相信大家都比较了解JSON格式的数据对于ajax的方便,不了解的可以从网上找一下这方面的资料来看一下,这里就不多说了,不清楚的可以在网上查一下,这里只说一下因为参数设置不当引起的取不到返回值的问题. ...

随机推荐

  1. Mysql 查看定时器 打开定时器 设置定时器时间

    1.查看是否开启evevt与开启evevt. 1.1.MySQL evevt功能默认是关闭的,可以使用下面的语句来看evevt的状态,如果是OFF或者0,表示是关闭的. show VARIABLES ...

  2. ubuntu14.04 Keras框架搭建

    >>>sudo su >>> pip3 install -U --pre pip setuptools wheel >>> pip3 instal ...

  3. AFM(3)---Maude使用说明

    load file-name 1可用绝对路径 2.可进入maude文件所在目录下load 3.默认工作空间是什么?

  4. 在vscode中,自定义代码片段,例vue组件的模板

    1---- 2----  输入vue,  选 vue.json 3----  在vue.json中编辑, 有说明 a.  tab符,要用空格, 也可以转义 4----   新建vue文件, 输入自定义 ...

  5. 在浏览器端用es6,babel+browserify打包

    写得最清楚的是这个系列: 一个普通的写网页的人如何过渡到ES6 (一) 感觉比babel官网写得还清楚点. 看完这个才有点理解node原来不只是用来起express后端web server,更主要用途 ...

  6. go build 和 go install

    环境:Win10 + GO1.9.2 1.区别 ①go build:编译go源码生成一个可执行文件:使用-o参数可以指定生成的可执行文件名称,如go build -o test.exe ②go ins ...

  7. 关于video.js不错的一篇博客,

    博客地址: http://www.cnblogs.com/webenh/p/5815741.html

  8. spring boot ----> jpa连接和操作mysql数据库

    环境: centos6.8,jdk1.8.0_172,maven3.5.4,vim,spring boot 1.5.13,mysql-5.7.23 1.引入jpa起步依赖和mysql驱动jar包 &l ...

  9. English trip V1 - B 22. Here,There and Everywhere 无处不在 Teacher:Taylor Key: Be + Ving

    In this lesson you will learn to describe what you see. 课上内容(Lesson) # How's the weather today? 今天的天 ...

  10. BGP - 5,BGP属性

    metric,自己决定去哪个EBGP邻居 local-pre,影响AS内部IBGP邻居的路由决策 med,影响AS外部EBGP邻居的路由决策   1,BGP属性     公认传递(well-known ...