无法解析包含单引号的json数据

2024-04-22

Problem

我的一些 json 数据出现解析错误,因为它包含单引号。 例如,我的一些数据可能如下所示:

“拉里的数据”

我读过以下文章:JSON 响应中的 jQuery 单引号 https://stackoverflow.com/questions/2275359/jquery-single-quote-in-json-response

我一直在尝试实现一些解决方案,但我无法摆脱解析错误。

Code

在我的模型中,我使用 lua 库将数据编码为 json。 该模型返回的数据如下所示:

[{\"createddatetime\":\"2013-09-10 17:56:55\",\"description\":\"John Doe\'s phone\",\"number\":\"72051\",\"createdname\":\"conversion script\",\"user\":\"23123\",\"position\":\"46\",\"id\":\"49\",\"user_id\":\"822\",\"password\":\"rwer234\"}]"

在我看来,我的代码目前如下所示:

  $.ajax({
      url:myurl + '?startpos=' + page_index * items_per_page + '&numberofrecordstograb=' + items_per_page + '&viewtype=json',

      success: function(data){            

            console.log('inside');    
             for(var i=0;i<data.length;i++) {
                        var deviceobj = data[i];                        
                        newcontent = newcontent + "<TR>";
                        newcontent=newcontent + '<TD>';    

                        //add EDIT hyperlink
                        if ($("#editdevicesettings").val() == "true") {              
                            var temp  = $("#editlinkpath").val();
                            newcontent=newcontent +  temp.replace("xxx",deviceobj["device_id"]) + '&nbsp;&nbsp;';
                        } 

                        //add DELETE hyperlink
                        if ($("#deletedevice").val() == "true") {              
                            var temp  = $("#deletelinkpath").val();
                            newcontent=newcontent +  temp.replace("xxx",deviceobj["device_id"]);
                        }                                 
                        newcontent=newcontent + '</TD>';

                        newcontent=newcontent + '<TD>' + deviceobj["number"] +'</TD>';
                        newcontent=newcontent + '<<TD>' + deviceobj["user"] + '</TD>';
                        newcontent=newcontent + '<<TD>' + deviceobj["password"] + '</TD>';
                        if (deviceobj["name"]) {
                              newcontent=newcontent + '<TD>' + deviceobj["name"] + '</TD>';
                        } 
                        else  {
                             newcontent=newcontent + '<TD>&nbsp;</TD>';
                        }
                        newcontent=newcontent + '<TD>' + unescape(deviceobj["description"])  + '</TD>';
                        newcontent = newcontent + "</TR>";         
                }// end for 
                // Replace old content with new content
                $('#Searchresult').html(newcontent);                    
            }//end if

      },
      error: function(request, textStatus, errorThrown) {
        console.log(textStatus);
        console.log('========');
        console.log(request);

      },
      complete: function(request, textStatus) { //for additional info
        //alert(request.responseText);
        console.log(textStatus);
      }
    });

但我仍然收到此特定记录的解析错误。

任何建议,将不胜感激。 谢谢。

EDIT 1

我改变了我的逻辑,以便当它失败时,它会在控制台中打印出“request.responseText”。它看起来是这样的:

"[{\"createddatetime\":\"2013-09-10 17:56:55\",\"description\":\"John Doe\'s phone\",\"number\":\"72051\",\"createdname\":\"conversion script\",\"user\":\"28567\",\"position\":\"46\",\"id\":\"49\",\"user_id\":\"822\",\"password\":\"rwer234\"}]"

撇号仍然被转义。

EDIT 2

这是我的代码在服务器端(也称为模型中)的样子:

get_device_records = function(ajaxdata)
   local results = list_devices(nil,false,ajaxdata.startpos, ajaxdata.numberofrecordstograb)
   return results.value
end

看起来您正在服务器端进行双重序列化。例如,如果您的 Web 框架自动序列化返回的对象,但您对对象进行了额外显式的、不必要的序列化调用,就会发生这种情况。您的代码在没有 ' 情况下工作的事实证明了这一点:jquery 自动进行一个解析(由于 dataType),然后您运行另一个 parseJSON。那不应该工作:) 修复服务器端的序列化并从 success 方法中删除不必要的 parseJSON 调用。所有其他解决方案都只是一种解决方法,而不是真正的解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法解析包含单引号的json数据 的相关文章

随机推荐

  • Java中的构造函数和new运算符

    从类创建新对象Student在Java中我们通常使用以下语句 Student std new Student 我读过 new 运算符通过在堆中分配内存空间来创建新对象 但是我还读到调用构造函数Student 创建它 所以 这有点令人困惑 哪
  • 如何在 Hamcrest 中使用(原始)自动装箱/加宽?

    我碰到https code google com p hamcrest issues detail id 130 https code google com p hamcrest issues detail id 130为 Hamcrest
  • 为什么 where 子句中不允许使用聚合函数

    我正在寻求对此的澄清 我在下面写了两个查询 我们有一个员工姓名表 其中包含 ID 姓名 薪水列 1 Select name from employee where sum salary gt 1000 2 Select name from
  • 将开发团队从 FTP 转换为版本控制系统

    我在一家小型 LAMP 开发工作室工作 那里的想法是完成代码并继续处理列表中的下一项 该团队在 Zend Studio 5 5 中工作 通过 FTP 或 SFTP 连接到 Live 服务器 他们喜欢的是代码部署的速度 因为它只是修改实时代码
  • Maven:根据配置文件选择父项目

    我有一个 Maven 项目 它是 jenkins 的插件 它的父级应该是
  • 缩减规模时 EC2 Spot 实例终止通知

    每次安排终止我的现货实例时 我都需要运行清理脚本 我有两个终止的理由 现货实例的价格超出了我的出价 由于自动伸缩组的伸缩策略导致的缩容 基于5分钟集群平均CPU使用率 随机实例终止 我确实喜欢下面的简单脚本this http blog fu
  • 如何停止在从 Google 云端硬盘下载时记住和应用文件扩展名

    我上传了混合负载的文件 图像 文档 pdf 所有文件扩展名为 dc 文件是否根据基础类型进行转换 作为迁移过程的一部分 我使用 Google Apps 脚本重命名这些文件并应用适当的文件扩展名 例如 pdf 选择其中任何文件并将结果下载到扩
  • 遍历数组并以项目符号显示

    我想遍历这个数组并显示 评论 作为要点 Array 1 gt Array id gt 1 comment gt a parent id gt 0 children gt Array 3 gt Array id gt 3 comment gt
  • 在尝试删除文件之前检查文件是否已打开[重复]

    这个问题在这里已经有答案了 在尝试删除文件之前如何检查文件是否已打开 以编程方式 像这样的东西 if file is open close it first delete file 由于某些原因 我认为这不会起作用 没有标准的 Java 机
  • 如何在c#中访问面板中的控件

    我在 c winforms 中使用面板 并使用循环用图片框的编号填充面板 例如面板名称为panal foreach string s in fileNames PictureBox pbox new new PictureBox pBox
  • boto3 copy 与 copy_object 有关 s3 中文件权限 ACL 的比较

    当我使用不同的键和前缀将对象复制到同一存储桶后 我相信这类似于重命名 其公共读取权限被删除 import boto3 s3 boto3 resource s3 copy source Bucket mybucket Key mykey s3
  • 如何使 volatile count++ 操作成为线程安全的

    我一直在经历 JCIP 作者说 线程限制的一个特殊情况适用于易失性变量 只要确保 volatable 变量仅从单个线程写入 对共享 volatile 变量执行读取 修改 写入操作是安全的 例如 count 被认为是一个复合操作 读取值 加一
  • 将 certifi 模块与 urllib2 一起使用?

    我有使用 urllib2 模块下载 https 页面时遇到问题 https stackoverflow com questions 33264502 windowserror error 5 access is denied using u
  • Laravel 外键下拉列表

    我有 2 张桌子 客户 id 全名 公司 ID 公司 id 公司名称 我已经创建了两个表之间的关系 并且工作正常 因为我可以在客户视图中显示公司名称 如下所示 customer gt company gt company name 我现在与
  • 无法在 IntelliJ IDEA 中打开调试器端口

    我有一个问题 无法使用 IntelliJ IDE 在调试模式下设置应用程序 但运行模式可以 我的操作系统是Windows 7 IDE是IntelliJ IDEA Web容器是Tomcat 6 我尝试了很长时间 更改了HTTP端口和JMX端口
  • 如何将数据库备份到 .bak 文件?

    我有一个在 Visual Studio 2008 中创建的网站 我需要将其上线 如何将数据库文件备份到 bak 以便将其交给托管公司放置在服务器上 从 SQL 提示符处 BACKUP DATABASE MyDatabase TO DISK
  • SSRS 2008 R2 到 SSRS 2016 迁移

    我必须将 770 个 SSRS 报告 包括本机模式和 Sharepoint 模式报告 从 2008 R2 版本迁移到 SSRS 2016 版本 哪个是 SSRS 迁移的最佳工具 我见过很少的工具 如 Microsoft Reporting
  • 如何将日期列表转换为字符串列表

    我正在尝试在谷歌电子表格中打印出日期列表 到目前为止我有以下脚本 它可以很好地获取日期列表 但我需要知道如何将此日期列表转换为日期列表字符串 def daterange startdate enddate r enddate datetim
  • 在 Spark 执行器节点上安装 Python 依赖项的最简单方法?

    据我所知 您可以将单个文件作为 Python Spark 程序的依赖项发送 但是成熟的库 例如 numpy 呢 Spark 是否有办法使用提供的包管理器 例如 pip 来安装库依赖项 或者这必须在 Spark 程序执行之前手动完成 如果答案
  • 无法解析包含单引号的json数据

    Problem 我的一些 json 数据出现解析错误 因为它包含单引号 例如 我的一些数据可能如下所示 拉里的数据 我读过以下文章 JSON 响应中的 jQuery 单引号 https stackoverflow com questions