JS中彻底删除JSON对象组成的数组中的元素_php模板

来源:脚本之家  责任编辑:小易  

字母索2113引的数组的是花括号5261,数字索引是中括号所以你4102构造数组进行json_encode的时候 就不要做这样1653的东西$data[0]=array("img"=>"xx","url"=>"xx");$data[1]=array("img"=>"xx","url"=>"xx");$xx=array("url_list"=>$data);json_encode($xx);这样就会生成中括号的了。。追问我查出原因了 不是你说这个原因哈,是因为数组嵌套多了一层才出现的这个问题追答我只能告诉你 这跟多维数组真的没关系。。。 我上面也描述错误了 是你json_encode 一个下标从0开始连续自增的数组 就会出现中括号的,重新写一个json生成的函数,在生成之后检测一下字符串的开头和结尾是否存在[]这两个括号,如果存在,就把这两个括号直接替换成{},自己想要什么,自己用字符串函数去生成就是了,php中无法生成去掉括号的JSON,但是你可以把JSON当做一个字符串,然后把括号替换掉!,数组转过去就成中括号了吧。。。你去了数组或者增加数组再json就没事了 json就变成字典了,echo json_encode(['hehe'],JSON_FORCE_OBJECT);//加上 JSON_FORCE_OBJECTwww.zgxue.com防采集请勿采集本网。

在 JS 中,对于某个由 JSON 对象组成的数组,例如:

先把获取的内容打印出来 ,看看是不是正常返回的数据 $filename = "http://whois.pconline.com.cn/ipJson.jsp?json=true";$content = file_get_contents($filename);$json = @json_decode($content );if($json){ $city=$json->city;}else{ echo

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];

按照下面的方法 var a=[];//这是原始数组 var ajson = a.serializeArray();//数组序列化以后就是json

如果我们想要删除其中的第二个json对象,应该怎么做呢?其实方法和操作数组完全相同。

$jsonStr=json_encode($array); //(这个是你输出的字符串) $myArr=json_decode($jsonStr, true)); $a=$myArr['lng']; $b=$myArr['lat']; php 内置的函数,数组和Json格式的数据相互转换 json_encode 数组转换成json格式的字符串 json_decode j

在最开始的时候尝试使用了 delete 运算符,但在查询数组长度的时候发现其实这种方法并不是彻底删除元素,而是删除它的值,但仍会保留空间。

$result = array( [commonResultInfo] =>{"":"","":"".});$info_arr = json_decode($result['commonResultInfo'],1);在用 $info_arr[某个key] 就可以了

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];test.length //输出为 3delete test[1];test.length //输出仍为 3

字串格式不对 解析失败 , 先把得到的字串用在线校验根据校验一下看是否合法的json字串

查询运算符 delete 我们知道它只是将该值置为 undefined,而不会影响数组长度,即将其变为稀疏数组(《JS权威指南》7.5节)。

了解及此,也许想着可以将删除点之后的元素各往前移动1个单位,实现彻底剔除该元素,但在JS方法中我们可以查到一种更加简便的方式:splice() 方法

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];test.length //输出为 3test.splice(1, 1);test.length //输出为 2

删除后 test.length 变为 2,这正是我们想要的结果。

JavaScript splice() 方法

数组中添加新元素:

<!DOCTYPE html><html><head><meta charset="utf-8"><title>js数组添加元素_真格学网</title></head><body><p id="demo">点击按钮向数组添加元素。</p><button onclick="myFunction()">点我</button><script>function myFunction(){var fruits = ["Banana", "Orange", "Apple", "Mango"];fruits.splice(2,0,"Lemon","Kiwi");var x=document.getElementById("demo");x.innerHTML=fruits;}</script></body></html>

splice定义和用法

splice() 方法用于添加或删除数组中的元素。

注意:这种方法会改变原始数组。

返回值

如果仅删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。

语法

array.splice(index,howmany,item1,.....,itemX)

参数 Values

参数 描述
index 必需。规定从何处添加/删除元素。

该参数是开始插入和(或)删除的数组元素的下标,必须是数字。

howmany 可选。规定应该删除多少元素。必须是数字,但可以是 "0"。

如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。

item1, ..., itemX 可选。要添加到数组的新元素

返回值

Type 描述
Array 如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

更多实例

实例

移除数组的第三个元素,并在数组第三个位置添加新元素:

<!DOCTYPE html><html><head><meta charset="utf-8"><title>真格学网</title></head><body><p id="demo">点击按钮添加和删除元素。</p><button onclick="myFunction()">点我</button><script>function myFunction(){var fruits = ["Banana", "Orange", "Apple", "Mango"];fruits.splice(2,1,"Lemon","Kiwi");var x=document.getElementById("demo");x.innerHTML=fruits;}</script></body></html>

实例

从第三个位置开始删除数组后的两个元素:

<!DOCTYPE html><html><head><meta charset="utf-8"><title>真格学网</title></head><body><p id="demo">点击按钮删除数组中的两个元素。</p><button onclick="myFunction()">点我</button><script>function myFunction(){var fruits = ["Banana", "Orange", "Apple", "Mango"];fruits.splice(2,2);var x=document.getElementById("demo");x.innerHTML=fruits;}</script></body></html>

到此这篇关于JS中彻底删除JSON对象组成的数组中的元素的文章就介绍到这了,更多相关JS删除JSON元素内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

参考方法就是先把文件2113读出来,把不要的数组5261元素删了后再写回4102去;参考代码如下:// std::string jsonPath // json文件路径1653Json::Reader reader;Json::Value root;ifstream is;is.open (jsonPath.c_str(), std::ios::binary );if (reader.parse(is, root)){std::string code;Json::Value value;int size = root.size();for (int i = 0; i < size; i++){if(条件){value[i] = root[i];}}is.close();Json::FastWriter writer;std::string json_append_file = writer.write(value);std::ofstream ofs;ofs.open(jsonPath.c_str());ofs << json_append_file;ofs.close();},得到数组后不是直接unset就行了吗先json_decode(jsonstr,true) 转成数组, 然后unset($arr['10073']),$data = '{"10073":{"stat":1},"10074":{"stat":2}}';//json数据2113省5261略41021653$data = json_decode($data, true);if(isset($data['10073'])){unset($data['10073']);},<?php$json_data = '{....}';$data = json_decode($json_data, true);unset($data['10073']);var_dump($data);本回答被提问者采纳,$arr = json_decode($原json,true);unset($arr['10073']);内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 一个捕获函数输出的函数
  • php模板之phpbean的目录结构
  • smarty的配置与高级缓存技术分享
  • php smarty模板生成html文档的方法
  • 深入解析php模板技术原理【一】
  • php简单系统数据添加以及数据删除模块源文件下载
  • php原生模板引擎 最简单的模板引擎
  • 模板引擎smarty工作原理以及使用示例
  • pain 全世界最小最简单的php模板引擎 (普通版)
  • php smarty 二级分类代码和模版循环例子
  • php怎么删除json里面的数据?
  • PHP怎么生成去掉中括号的JSON
  • 求指点,php如何取出json里面的值,该json是对象和...
  • JS如何取出php返回的json数组
  • php提取json数组里面的值怎么提?
  • jquery 如何将JS数组转换PHP可获取json格式
  • json数组对象怎么在php中定义
  • PHP怎样取出来数组中的json数据
  • php的二维数组用json_encode()转json,在js获取出...
  • 请问:如何把json数组转换为不带索引的php数组呢
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程一个捕获函数输出的函数php模板之phpbean的目录结构smarty的配置与高级缓存技术分享php smarty模板生成html文档的方法深入解析php模板技术原理【一】php简单系统数据添加以及数据删除模块源文件下载php原生模板引擎 最简单的模板引擎模板引擎smarty工作原理以及使用示例pain 全世界最小最简单的php模板引擎 (普通版)php smarty 二级分类代码和模版循环例子smarty foreach 使用说明深入解析php模板技术原理【一】smarty模板快速入门在smarty模板中使用php函数的方法在php中使用模板的方法thinkphp关联模型操作实例分析模板引擎smarty工作原理以及使用一键删除顽固的空文件夹 软件下载需要使用php模板的朋友必看的很多php模板引擎smarty的缓存使用总结php使用smarty的相关注意事项及访问变量的smarty中的注释和截断功能介绍smarty变量调节器失效的解决办法thinkphp关联模型操作实例分析php smarty 二级分类代码和模版循环例子谈谈关于php的优点与缺点smarty的配置与高级缓存技术分享php smarty初体验二 获取配置信息phpbean路由转发的php代码smarty foreach 使用说明
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved