① delphi json 是否有效
用、有用的類型,所以我僅僅用這兩種例子做演示!
演示代碼:
[delphi] view plain
{
功能:DelphiXE7中使用JSON
------------------------------------------------------------------------------
說明:
1,使用Delphi自己帶的JSON(system.json)。
2,這僅僅是一個簡單例子,以後還會增加演示功能。
------------------------------------------------------------------------------
注意:
1,JSON類創建後,裡面所有元素不用管釋放,JSON類自己管理,千萬不要畫蛇添足啊!!!!!!
------------------------------------------------------------------------------
作者:孫玉良 QQ:14667479 Email:[email protected] 修改時間:2014/11/23 00:13
------------------------------------------------------------------------------
開發工具:Delphi XE7
測試手機:華為榮耀X1
}
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
FMX.Layouts, FMX.Memo;
type
TForm1 = class(TForm)
Panel1: TPanel;
Memo1: TMemo;
Panel2: TPanel;
Button1: TButton;
Button2: TButton;
Memo2: TMemo;
Button3: TButton;
procere Button1Click(Sender: TObject);
procere Button2Click(Sender: TObject);
procere FormCreate(Sender: TObject);
procere Button3Click(Sender: TObject);
procere FormResize(Sender: TObject);
private
{ Private declarations }
// 重新設置button按鈕
procere ResetButton;
public
{ Public declarations }
end;
var
Form1: TForm1;
const
// 演示用的JSON
jsonString = '{"name":"張三", "other":["中國","程序員"]}';
implementation
{$R *.fmx}
uses
System.json; // Dephi自帶的JSON單元
procere TForm1.Button1Click(Sender: TObject);
var
JSONObject: TJSONObject; // JSON類
i: Integer; // 循環變數
temp: string; // 臨時使用變數
jsonArray: TJSONArray; // JSON數組變數
begin
if Trim(Memo1.Text) = '' then
begin
ShowMessage('要解析數據不能為空!');
end
else
begin
JSONObject := nil;
try
{ 從字元串生成JSON }
JSONObject := TJSONObject.ParseJSONValue(Trim(Memo1.Text)) as TJSONObject;
if JSONObject.Count > 0 then
begin
{ 1,遍歷JSON數據 }
Memo2.Lines.Add('遍歷JSON數據:' + #13#10);
Memo2.Lines.Add('JSON數據數量:' + IntToStr(JSONObject.Count));
for i := 0 to JSONObject.Count - 1 do
begin
if i = 0 then
begin
temp := JSONObject.Get(i).ToString + #13#10;;
end
else
begin
temp := temp + JSONObject.Get(i).ToString + #13#10;
end;
end;
{ output the JSON to console as String }
Memo2.Lines.Add(temp);
Memo2.Lines.Add('------------------------------');
{ 2,按元素解析JSON數據 }
Memo2.Lines.Add('按元素解析JSON數據:' + #13#10);
temp := 'name = ' + JSONObject.Values['name'].ToString + #13#10;
Memo2.Lines.Add(temp);
// json數組
jsonArray := TJSONArray(JSONObject.GetValue('other'));;
if jsonArray.Count > 0 then
begin
// 得到JSON數組字元串
temp := 'other = ' + JSONObject.GetValue('other').ToString + #13#10;
// 循環取得JSON數組中每個元素
for i := 0 to jsonArray.Size - 1 do
begin
temp := temp + IntToStr(i + 1) + ' : ' + jsonArray.Items[i]
.Value + #13#10;
end;
end;
Memo2.Lines.Add(temp);
end
else
begin
temp := '沒有數據!';
Memo2.Lines.Add(temp);
end;
finally
JSONObject.Free;
end;
end;
end;
// 清空顯示數據
procere TForm1.Button2Click(Sender: TObject);
begin
Memo1.Text := '';
Memo2.Text := '';
end;
// 設置要解析的JSON數據
procere TForm1.Button3Click(Sender: TObject);
begin
Memo1.Text := jsonString;
end;
// 設置要解析的JSON數據
procere TForm1.FormCreate(Sender: TObject);
begin
Memo1.Text := jsonString;
end;
procere TForm1.FormResize(Sender: TObject);
begin
// 重新設置button按鈕
self.ResetButton;
end;
// 重新設置button按鈕
procere TForm1.ResetButton;
var
buttonWidth: Integer;
begin
buttonWidth := self.Width div 3;
Button1.Width := buttonWidth;
Button2.Width := buttonWidth;
Button3.Width := buttonWidth;
end;
end.
② json格式的文件用什麼軟體打開
json是一種文本格式,json格式的文件可以用記事本打開。
1、右擊需要打開的json文件,在展開的菜單中點擊「打開方式...」按鈕選擇打開方式:
③ 如何在前台js中判斷後台傳來的Json中某個鍵的值來彈框顯示不同的內容
JSON 字串可以包含陣列 Array 資料或者是物件 Object 資料
陣列可以用 [ ] 來寫入資料
物件可以用 { } 來寫入資料
name / value 是成對的,中間透過 (:) 來區隔
若回傳值為:
"data":{
"detail":{
"points":[{"lng":114.03547645,"lat":22.66128515}],
"query_status":"0",
"server_retcode":"0"
}
}
解讀內容如下:
lng = data.detail.points[0].lng
lat = data.detail.points[0].lat
④ PHP網站上傳圖片自動壓縮,怎麼編程啊,求指
這里會使用到三個文件:
connect.php:連接資料庫
test_upload.php:執行SQL語句
upload_img.php:上傳圖片並壓縮
三個文件代碼如下:
連接資料庫:connect.php
<?php
$db_host='';
$db_user='';
$db_psw='';
$db_name='';
$db_port='';
$sqlconn=newmysqli($db_host,$db_user,$db_psw,$db_name);
$q="setnamesutf8;";
$result=$sqlconn->query($q);
if(mysqli_connect_errno()){
printf("Connectfailed:%s ",mysqli_connect_error());
exit();
}
?>
當然使用一些封裝的資料庫類也是可以的。
執行SQL語句:test_upload.php
<?php
require("connect.php");
require("upload_img.php");
$real_img=$uploadfile;
$small_img=$uploadfile_resize;
$insert_sql="insertintoimg(real_img,small_img)values(?,?)";
$result=$sqlconn->prepare($insert_sql);
$result->bind_param("ss",$real_img,$small_img);
$result->execute();
?>
上傳圖片並壓縮:upload_img.php
<?php
//設置文件保存目錄
$uploaddir="upfiles/";
//設置允許上傳文件的類型
$type=array("jpg","gif","bmp","jpeg","png");
//獲取文件後綴名函數
functionfileext($filename)
{
returnsubstr(strrchr($filename,'.'),1);
}
//生成隨機文件名函數
functionrandom($length)
{
$hash='CR-';
$chars='';
$max=strlen($chars)-1;
mt_srand((double)microtime()*1000000);
for($i=0;$i<$length;$i++)
{
$hash.=$chars[mt_rand(0,$max)];
}
return$hash;
}
$a=strtolower(fileext($_FILES['filename']['name']));
//判斷文件類型
if(!in_array(strtolower(fileext($_FILES['filename']['name'])),$type))
{
$text=implode(",",$type);
$ret_code=3;//文件類型錯誤
$page_result=$text;
$retArray=array('ret_code'=>$ret_code,'page_result'=>$page_result);
$retJson=json_encode($retArray);
echo$retJson;
return;
}
//生成目標文件的文件名
else
{
$filename=explode(".",$_FILES['filename']['name']);
do
{
$filename[0]=random(10);//設置隨機數長度
$name=implode(".",$filename);
//$name1=$name.".Mcncc";
$uploadfile=$uploaddir.$name;
}
while(file_exists($uploadfile));
if(move_uploaded_file($_FILES['filename']['tmp_name'],$uploadfile))
{
if(is_uploaded_file($_FILES['filename']['tmp_name']))
{
$ret_code=1;//上傳失敗
}
else
{//上傳成功
$ret_code=0;
}
}
$retArray=array('ret_code'=>$ret_code);
$retJson=json_encode($retArray);
echo$retJson;
}
//壓縮圖片
$uploaddir_resize="upfiles_resize/";
$uploadfile_resize=$uploaddir_resize.$name;
//$pic_width_max=120;
//$pic_height_max=90;
//以上與下面段注釋可以聯合使用,可以使圖片根據計算出來的比例壓縮
$file_type=$_FILES["filename"]['type'];
functionResizeImage($uploadfile,$maxwidth,$maxheight,$name)
{
//取得當前圖片大小
$width=imagesx($uploadfile);
$height=imagesy($uploadfile);
$i=0.5;
//生成縮略圖的大小
if(($width>$maxwidth)||($height>$maxheight))
{
/*
$widthratio=$maxwidth/$width;
$heightratio=$maxheight/$height;
if($widthratio<$heightratio)
{
$ratio=$widthratio;
}
else
{
$ratio=$heightratio;
}
$newwidth=$width*$ratio;
$newheight=$height*$ratio;
*/
$newwidth=$width*$i;
$newheight=$height*$i;
if(function_exists("imageresampled"))
{
$uploaddir_resize=imagecreatetruecolor($newwidth,$newheight);
imageresampled($uploaddir_resize,$uploadfile,0,0,0,0,$newwidth,$newheight,$width,$height);
}
else
{
$uploaddir_resize=imagecreate($newwidth,$newheight);
imageresized($uploaddir_resize,$uploadfile,0,0,0,0,$newwidth,$newheight,$width,$height);
}
ImageJpeg($uploaddir_resize,$name);
ImageDestroy($uploaddir_resize);
}
else
{
ImageJpeg($uploadfile,$name);
}
}if($_FILES["filename"]['size'])
{
if($file_type=="image/pjpeg"||$file_type=="image/jpg"|$file_type=="image/jpeg")
{
//$im=imagecreatefromjpeg($_FILES[$upload_input_name]['tmp_name']);
$im=imagecreatefromjpeg($uploadfile);
}
elseif($file_type=="image/x-png")
{
//$im=imagecreatefrompng($_FILES[$upload_input_name]['tmp_name']);
$im=imagecreatefromjpeg($uploadfile);
}
elseif($file_type=="image/gif")
{
//$im=imagecreatefromgif($_FILES[$upload_input_name]['tmp_name']);
$im=imagecreatefromjpeg($uploadfile);
}
else//默認jpg
{
$im=imagecreatefromjpeg($uploadfile);
}
if($im)
{
ResizeImage($im,$pic_width_max,$pic_height_max,$uploadfile_resize);
ImageDestroy($im);
}
}
?>
請按照現實情況更改connect.php,test_upload.php中對應的信息。
望採納,謝謝。
⑤ json怎麼刪除數組元素
如果是僅僅用於刪除元素的話,splice()的功能應該足夠了,
傳入兩個參內數,第一個是要刪除的容位置,從0開始計算,第二個參數是要刪除的個數。
比如:var arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 1);
該函數的本身是返回刪除的元素構成的數組。
執行這條語句後,arr則變為 ['a', 'b', 'c', 'e']
你可以看看http://www.w3school.com.cn/js/jsref_splice.asp這篇文章,或許對你有幫助。