这个JSON字符串有什么问题?

时间:2010-05-17 07:20:21

标签: javascript jquery json

我的JSON字符串如下所示,

  

[{“id”:“38”,“heading”:“你能   还要弄清楚如何让我回来   10个小时我   sp .....“,”描述“:”我有一个   与Login非常相似的问题   控制 - 再次它总是产生一个   默认样式包含   border-collapse - 仅在这种情况下   .....“,”img_url“:   “〜/ EventImages / EventImages1274014884460.jpg”, “catogory”   :“新闻”,“母鹿”:“15-05-2010”},

     

{“id”:“40”,“heading”:“如何   删除每行的边框(从   gridview cont .....“,”描述“   :“如何删除每个边框   行(来自gridview控件)。 ?一世   将borderWidth设置为0,以及边框   IE不显示,但顶部显示   a .....“,”img_url“:   “〜/ EventImages / EventImages1274028613023.jpg”, “catogory”   :“新闻”,“母鹿”:“15-05-2010”},

     

{“id”:“41”,“heading”:“Realmac   软件|如何修复FancyZoom弹出窗口?   (弹出behi .....“,”描述“:   “我们需要的第一件事就是选择   对话框,不仅使其更容易   用户,也因为后来我们   将要从中启动此对话框   .....“,”img_url“:   “〜/ EventImages / EventImages1274037688120.jpg”, “catogory”   :“新闻”,“母鹿”:“15-05-2010”},

     

{“id”:“42”,“heading”:“你好jacon   
dsadddaddddddddddddddddd“”,“描述”:“你好jacon
这是一点点   因为clientHeight / Width而凌乱   属性可能意味着不同的东西   在不同的浏览器,甚至   不同的thi .....“,”img_url“:   “〜/ EventImages / EventImages1274041211533.jpg”, “catogory”   :“新闻”,“母鹿”:“15-05-2010”}

但是得到错误,

unterminated string literal ...

修改

我用过这个,但它不起作用,

 var newjson = cfreturn( """" & ToString( HfJsonValue ).ReplaceAll( "(['""\\\/\n\r\t]{1})", "\\$1" ) & """" ) ;
 var jsonObj = eval('(' + newjson + ')');

错误:missing ) after argument list

源代码:

var newjson = cfreturn( """" & ToString( HfJsonValue ).ReplaceAll( "(['""\\\/\n\r\t]{1})", "\\$1" ) & """" ); 

编辑:

JSON字符串中有'标记导致问题......任何建议

6 个答案:

答案 0 :(得分:3)

在玩JSONLint之后,我发现了以下两个问题:

  1. 需要使用\\n转义换行符。
  2. 您错过了终端]

答案 1 :(得分:1)

最有可能是因为那里某处没有未转义的线路爆炸造成的。在这个例子中,到处都有换行符,但我认为它们是为格式化目的而添加的。

如果您确实有换行符,请将其替换为“\ n”或将“\”放在该行的末尾:

var x = "multi \n line \n string";
var y = "multi\
line\
string";

// this causes the "unterminated string literal" error.
var z = "multi
line
string";

答案 2 :(得分:0)

你应该尝试逃避包括\n在内的所有特殊字符,这通常是导致此类错误的原因。

看看这个blog post

答案 3 :(得分:0)

无论您何时获得JSON,都会生成无效的JSON。

清理它并不是一件容易的事,而是从错误的方向接近问题。

从源头解决问题。

答案 4 :(得分:0)

您可以尝试以下示例。

<script type="text/javascript">

        var newjson = "{'id' : '38','heading' : 'Can you also figure out how to get me back the 10 "
        + "hours I sp.....','description' : 'Im having a very similar problem with the "
        + "Login control - again it always generates a default style containing border "
        + " -collapse -only in this case .....','img_url' : '~/EventImages/"
        + "EventImages1274014884460.jpg','catogory' : 'News','doe' : '15-05-2010 '}";

        var jsonObj = eval('(' + newjson + ')');

        alert(jsonObj.id);
        alert(jsonObj.heading);

    </script>

答案 5 :(得分:0)

应该自动转义该迷路引号。你自己生成json吗?如果是这样,我强烈建议您使用json库来处理您正在使用的任何语言,否则您将继续遇到这个问题的日益模糊的版本。