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})
}
})
}
});
求採納