A. php怎么删除json里面的数据
参考方法就是先把文件读出来,把不要的数组元素删了后再写回去;
参考代码如下:
// std::string jsonPath // json文件路径
Json::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();
}
B. PHP生成json后咋去掉[]
JSON 格式的数据如果去掉 [ 的话可能无法正常转成数组了。
去除的话可以用字符串替换函数:
$json;
$newJson=str_replace(['[',']'],['',''],$json);
echo$newJson;
C. 如何解决php中json
json_decode()
json_decode
(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
json_decode — 对 JSON 格式的字符串进行编码
说明
mixed json_decode ( string $json [, bool $assoc ] )
接受一个 JSON 格式的字符串并且把它转换为 PHP 变量
参数
json
待解码的 json string 格式的字符串。
assoc
当该参数为 TRUE 时,将返回 array 而非 object 。
返回值
Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned.
2.json_encode()
json_encode
(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
json_encode — 对变量进行 JSON 编码
Report a bug 说明
string json_encode ( mixed $value [, int $options = 0 ] )
返回 value 值的 JSON 形式
Report a bug 参数
value
待编码的 value ,除了resource 类型之外,可以为任何数据类型
该函数只能接受 UTF-8 编码的数据
options
由以下常量组成的二进制掩码: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_UNESCAPED_UNICODE.
Report a bug 返回值
编码成功则返回一个以 JSON 形式表示的 string 或者在失败时返回 FALSE 。
Report a bug 更新日志
版本 说明
5.4.0 options 参数增加常量: JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, 和 JSON_UNESCAPED_UNICODE。
5.3.3 options 参数增加常量:JSON_NUMERIC_CHECK。
5.3.0 增加 options 参数.
D. php 处理json字符串
这个PHP 本身有二个函数 :
1. json_encode( array 或 object) 这个是用来把对象 或 数组转换为 JSON格式数据;
2. json_decode(string , boolen[数组为true,对象不用设置]) 这个是把现有的JSON数据转化为 PHP 数组或对象.
式例:
$a = array(1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd');
$b = json_encode($a);
echo $b; // 这里得到字串 "{"1":"a","2":"b","3":"c","4":"d"}"
$c = json_decode($b, true);
var_mp($c); // 这里得到$a数组
如果JSON数据是一个数据, 转化时建议把json_decode函数的第二个参数设为true, 对象则不用.
希望可以帮到你
E. php下怎么对json指定值去重复,其它值相加
第一 你保存的json 会有"0";正常的 0,1,2,3这种数组索引 转成json 不会出现"0"开头。很奇怪你怎么转出来的。
第二 你的数组规划不合理。简单看来 biaoshi 应该是唯一的 但是没值。失败。所以结果根本没有能简单判断唯一的东西 。最起码你要保证里面有个唯一的键。从新设计吧。你这个很失败。
自己去研究下购物车 就是你需要的东西 看看设计模型 就明白了。
F. 如何在PHP中解析json
目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。
从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。
一、json_encode()
该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
结果为
{"a":1,"b":2,"c":3,"d":4,"e":5}
由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用GB2312编码,或者外文使用ISO-8859-1编码的时候,这一点要特别注意。
二、索引数组和关联数组
PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array)。
由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。
比如,现在有一个索引数组
$arr = Array('one', 'two', 'three');
echo json_encode($arr);
结果为:
["one","two","three"]
三、类(class)的转换
下面是一个PHP的类: class Foo { const ERROR_CODE = '404'; public $public_ex = 'this is public'; private $private_ex = 'this is private!'; protected $protected_ex = 'this should be protected'; public function getErrorCode() { return self::ERROR_CODE; } }
现在,对这个类的实例进行json转换:
$foo = new Foo;
$foo_json = json_encode($foo);
echo $foo_json;
输出结果是
{"public_ex":"this is public"}
可以看到,除了公开变量(public),其他东西(常量、私有变量、方法等等)都遗失了。
G. 后端php那里接收到前端post给的json为什么会是转义字符串格式
1,有可能框架对整个参数,进行了转义,反转义一遍即可
2,有可能开启了PHP的自动过滤功能,在php.ini中关闭即可
magic_quotes_gpc=On改为magic_quotes_gpc=Off
H. php后台接收json字符串为什么出现问号,形式如下
这种方式是jq的jsonp,用于跨域回调!
在jq里面callback=?当是jsonp时,会将?替换成随机字符串,用于回调时调用。
I. 这个PHP过滤怎么改成JS的过滤
通过js的AJAX去请求数据,
AJAX的方法
$.ajax({
async : false, //表示请求是否异步处理
type : "post", //请求类型
url : "/getDepts",//请求的 URL地址
dataType : "json",//返回的数据类型
success: function (data) {
获取服回务器端答数据进行遍历赋值
},
error:function (data) {
请求错误时提示
}
});
然后在请求成功后进行编辑给模板赋值
J. 对json数据进行过滤
//说的不清楚,应该是要找到children里包含过滤文本的对象吧,我只能猜着写
var list=[];
var filter="融通通泰保本"; //这里是过专滤条件属
$.each(Json,function(i,item){
//先定义一个标识,表示当前对象是否包含过滤文本
var flag=false;
//子数组
var nlist;
$.each(item.children,function(ci,citem){
//如果包含
if(citem.value.indexOf(filter)!=-1){
flag=true;
nlist.push(citem)
}
if(flag){
list.push({value:item.value,children:nlist})
}
})
}
});
求采纳