Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquerygrep+;JSON空数据过滤器_Javascript_Jquery_Json - Fatal编程技术网

Javascript jquerygrep+;JSON空数据过滤器

Javascript jquerygrep+;JSON空数据过滤器,javascript,jquery,json,Javascript,Jquery,Json,我有一个JSON文件,我正在将数据注入一个HTML页面。 我想过滤掉从JSON文件返回的任何空对象数组 我的代码如下-我应该使用GREP吗 $(data.content).each(function(index, content){ $("#htmlID").append('<span>' + content.myinfo + '); }); { "content": [ {"myinfo":"B

我有一个JSON文件,我正在将数据注入一个HTML页面。 我想过滤掉从JSON文件返回的任何空对象数组

我的代码如下-我应该使用GREP吗

  $(data.content).each(function(index, content){
      $("#htmlID").append('<span>' + content.myinfo + ');
    });
        {

        "content": 

        [ 
    {"myinfo":"Bill Clinton 095 years old. "},
    {" "},
    {"myinfo":"Bill Clinton 295 years old. "},
    {" "}

        ]
        }
$(data.content)。每个(函数(索引、内容){
$(“#htmlID”).append(“”+content.myinfo+”);
});
{
“内容”:
[ 
{“myinfo”:“比尔·克林顿095岁。”},
{" "},
{“myinfo”:“比尔·克林顿295岁。”},
{" "}
]
}

您不能忽略空数据吗?像这样的

$(data.content).each(function(index, content){
    if(!(typeof content.myinfo === "undefined" ||
      content.myinfo.length<1)){
      $("#htmlID").append('<span>' + content.myinfo);
    }
});
$(data.content)。每个(函数(索引、内容){
如果(!(typeof content.myinfo==“未定义”||
content.myinfo.length来自{“”}语法错误的一部分(它是否只是{}?)唯一正确的方法是使用解析器迭代对象并删除不需要的内容

这可以通过使用
jQuery.parseJSON(json)
(请参阅:)来实现,这还可以确保在json字符串中不会执行恶意代码

其他方法,例如删除与regexp匹配的行,都是非常糟糕的黑客行为,在一些非标准场景中可能会导致许多问题

编辑: 我看到还有一个问题:将JS对象转换回JSON字符串

无论如何,我不确定您的实际需要是什么(content.myinfo.myinfo中包含什么?为什么要这样构建HTML+JSON代码?JSON字符串是如何生成的?

根据,您的JSON无效

JSON中的空对象应如下所示:

{" ": ""}

将两个空对象更改为上面的形式会使字符串成为有效的JSON,这应该可以解析。

您的语法没有意义。
{”“}
应该是什么?我猜这就是“空数组对象”OP正在谈论。假设这不是一个打字错误,你发布的不是有效的JSON;你应该在源代码中更好地格式化它,否则它不会在JS中正确解析。编辑代码,错过了你已经在迭代data.content。这应该行得通。是的,你可能会使用grep达到同样的效果。但是,正如你在JSON中所说的,你有{“”},这是无效的。这将阻止正确解析JSON。在这种情况下,这和grep都没有帮助。好的,那么上面的方法应该可以正常工作;或者可以在数组上使用grep。