簡單的json實例下載(json實戰)

本文目錄一覽:

PHP生成及獲取JSON文件的方法

本文實例講述了PHP生成及獲取JSON文件的方法。分享給大家供大家參考,具體如下:

首先定義一個數組,然後遍曆數據表,把相應的數據放到數組中,最後通過json_encode()轉化數組

json_encode()

函數的功能是將數值轉換成

JSON

數據存儲格式。

putjson.php:

?php

//

生成一個PHP數組

$data

=

array();

$data[0]

=

array(‘1′,’吳者然’,’onestopweb.cn’);

$data[1]

=

array(‘2′,’何開’,’iteye.com’);

//

把PHP數組轉成JSON字元串

$json_string

=

json_encode($data);

//

寫入文件

file_put_contents(‘test.json’,

$json_string);

?

有同名的

JSON

文件則覆蓋,沒有則創建。

生成或覆蓋的

JSON

如下:

複製代碼

代碼如下:[[“1″,”\u811A\u672C\u4E4B\u5BB6″,””],[“2″,”\u7F16\u7A0B\u5F00\u53D1″,”jb51.net”]]

然後,把

JSON

文件中的數據讀取到PHP變數中。

getjson.php:

?php

//

從文件中讀取數據到PHP變數

$json_string

=

file_get_contents(‘test.json’);

//

把JSON字元串轉成PHP數組

$data

=

json_decode($json_string,

true);

//

顯示出來看看

var_dump($data);

echo

‘brbr’;

print_r($data);

echo

‘brbr’;

echo

‘編號:’.$data[0][0].’

姓名:’.$data[0][1].’

網址:’.$data[0][2];

echo

‘br’;

echo

‘編號:’.$data[1][0].’

姓名:’.$data[1][1].’

網址:’.$data[1][2];

?

效果圖:

PS:這裡再為大家推薦幾款比較實用的json在線工具供大家參考使用:

在線JSON代碼檢驗、檢驗、美化、格式化工具:

JSON在線格式化工具:

在線XML/JSON互相轉換工具:

json代碼在線格式化/美化/壓縮/編輯/轉換工具:

C語言風格/HTML/CSS/json代碼格式化美化工具:

更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP中json格式數據操作技巧匯總》、《PHP針對XML文件操作技巧總結》、《PHP基本語法入門教程》、《PHP數組(Array)操作技巧大全》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

PHP JSON格式數據交互實例代碼詳解

在PHP中解析JSON主要用到json_encode和json_decode兩個PHP

JSON函數,比PHP解析XML方便很多,下面詳細介紹下PHP

JSON的使用。

JSON基礎介紹

JSON(JavaScript

Object

Notation)

是一種輕量級的數據交換格式。

JSON主要有兩種結構:

「名稱/值」對的集合,在PHP中可以理解為關聯數組

(associative

array)。

值的有序列表(An

ordered

list

of

values)。在PHP中可以理解為普通數組(array)。

對象是一個無序的「『名稱/值’對」集合。一個對象以「{」(左括弧)開始,「}」(右括弧)結束。每個「名稱」後跟一個「:」(冒號);「『名稱/值’

對」之間使用「,」(逗號)分隔。

數組是值(value)的有序集合。一個數組以「[」(左中括弧)開始,「]」(右中括弧)結束。值之間使用「,」(逗號)分隔。值(value)可以是雙引號括起來的字元串(string)、數值(number)、true、false、

null、對象(object)或者數組(array)。這些結構可以嵌套。

我目前對JSON的理解更偏向於數組,類似於PHP中的關聯數組,你可以將PHP數組轉換為JSON格式。

更多JSON的介紹請參考JSON官網和IBM關於JSON的介紹

PHP

JSON解析實例

PHP5.2開始已經將JSON作為PHP擴展的一部分,所以並不需要另外安裝JSON。另外為了保證下面的PHP

JSON實例不出現中文亂碼,請保證你的編碼格式為UTF8。

JSON是Javascript的一部分,首先我們看下Javascript中如何定義JSON

複製代碼

代碼如下:

var

json_obj

=

{‘WebName’:’PHP網站開發教程網’};

alert(json_obj.WebName);

var

json_arr

=[{‘WebName’:’PHP網站開發教程網’,’WebSite’:”},{‘ArtTitle’:’PHP

JSON實例講解’}]

alert(json_arr[1].ArtTitle);

var

php_json

=

[[‘PHP網站開發教程網’,”],[‘文章標題’,’PHP

JSON實例講解’]];

alert(php_json[1][0]);

在這段JSON實例代碼中我構建了所有的JSON形式,

第1行,定義了JSON以對象形式存在

第4行,定義了JSON以數組形式存在,嵌套了JSON對象,所以有點類似於PHP的關聯數組,其實仍然是對象。

第7行,定了JSON以普通數組形式存在。

注意:由於Javascript是區分大小寫的,所以訪問JSON關聯數組對象時注意key的大小寫問題。

PHP與JSON格式數據交互時,第一步需要將PHP數組轉換為JSON格式的數據,可使用PHP5自帶的json_encode函數,當PHP解析傳遞過來的JSON格式數據時需要使用json_decode函數進行解析轉換為PHP數組,PHP轉換並解析JSON數據的實例代碼如下

複製代碼

代碼如下:

?php

$json_arr

=

array(‘WebName’=’PHP網站開發教程網’,’WebSite’=”);

$php_json

=

json_encode($json_arr);

echo

$php_json;

$php_json

=

json_decode($php_json);

print_r($php_json);

?

說明:這裡通過PHP定義了關聯數組,然後通過json_encode轉換為JSON格式的數據,通過echo語句可以看到轉換後的JSON對象,通過PHP

JSON解析函數json_decode可以將JSON格式的數據解析為PHP的關聯數組。如果編碼不正確,JSON中文會出現亂碼。如果你使用Editplus調試PHP,請注意保存文件時編碼將ANSI改為UTF8。

最後我們來看下完整的PHP

JSON交互實例

複製代碼

代碼如下:

?php

$json_arr

=

array(‘WebName’=’PHP網站開發教程網’,’WebSite’=”);

$php_json

=

json_encode($json_arr);

?

script

type=”text/javascript”

var

php_json

=

?=$php_json?;

/script

script

type=”text/javascript”

function

php_json_dis(php_json)

{

alert(php_json.WebName);

alert(php_json.WebSite);

}

php_json_dis(php_json);

/script

至此,PHP通過json_encode和json_decode函數對JSON格式數據進行轉換和解析的實例就介紹完了。

請教Qt如何解析出Json的數據

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。它基於JavaScript(Standard ECMA-262 3rd Edition – December 1999)的一個子集。 JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成。

常用的Json庫

JsonCpp

JsonCpp是一個C++用來處理JSON數據的開發包。

網址:.

cJSON

cJSON是一個超輕巧,攜帶方便,單文件,簡單的可以作為ANSI-C標準的JSON解析器。

網址:.

QJson

QJson是一個基於Qt的開發包用來將JSON數據解析成QVariant對象,JSON的數組將被映射為QVariantList實例,而其他對象映射為QVariantMap實例。

網址:.

關於Qt中對JSON的生成與解析,Qt5以前的版本,需要去進行單獨下載、編譯,才能使用。到了Qt5,提供了專門的QJsonDocument類來讀取和寫入JSON文檔。

Qt5中JSON的生成與解析

QJsonDocument

QJsonDocument既可以從一個基於文本表示的UTF-8編碼,又可以從Qt自己的二進位格式讀取和寫入這個文件。

JSON文檔可以從它的基於文本的表示使用QJsonDocument::fromJson()轉換為QJsonDocument,用.toJSON()將其轉換迴文字。解析器非常快速和高效,將JSON轉換為二進位表示。

QJsonObject

QJsonObject類用於封裝JSON對象。

JSON對象是鍵值對,其中鍵是唯一的字元串,其值由QJsonValue代表。一個QJsonObject可以從QVariantMap轉換/被轉換。

QJsonArray

QJsonArray類用於封裝JSON數組。

一個JSON數組列表值。該列表可以通過從陣列插入和移除QJsonValue的操縱。一個QJsonArray可以從QVariantList轉換為/被轉換。

QJsonDocument有效解析後的文檔可以使用!iSNull()判斷。使用isArray()和isObject()來判斷是否包含一個數組或對象。文檔中包含的數組或對象可以使用array()或object()進行檢索,然後讀取或操縱。

示例

QJsonObject

(1)生成Json

QJsonObject json;

json.insert(“name”, QString(“Qt”));

json.insert(“version”, 5);

json.insert(“windows”, true);

QJsonDocument document;

document.setObject(json);

QByteArray byte_array = document.toJson(QJsonDocument::Compact);

QString json_str(byte_array);

結果:

json_str:{“name”: “Qt”,”version”: 5,”windows”: true}

(2)解析Json

QJsonParseError json_error;

QJsonDocument parse_doucment = QJsonDocument::fromJson(byte_array, json_error);

if(json_error.error == QJsonParseError::NoError)

{

if(parse_doucment.isObject())

{

QJsonObject obj = parse_doucment.object();

if(obj.contains(“name”))

{

QJsonValue name_value = obj.take(“name”);

if(name_value.isString())

{

QString name = name_value.toString();

}

}

if(obj.contains(“version”))

{

QJsonValue version_value = obj.take(“version”);

if(version_value.isDouble())

{

int version = version_value.toVariant().toInt();

}

}

if(obj.contains(“windows”))

{

QJsonValue version_value = obj.take(“windows”);

if(version_value.isBool())

{

bool flag = version_value.toBool();

}

}

}

}

結果:

name:Qt

version:5

windows:true

QJsonArray

(1)生成Json

QJsonArray json;

json.insert(0, QString(“Qt”));

json.insert(1, QString(“version”));

json.insert(2, true);

QJsonDocument document;

document.setArray(json);

QByteArray byte_array = document.toJson(QJsonDocument::Compact);

QString json_str(byte_array);

結果:

json_str:[“Qt”,”version”,true]

(2)解析Json

QJsonParseError json_error;

QJsonDocument parse_doucment = QJsonDocument::fromJson(byte_array, json_error);

if(json_error.error == QJsonParseError::NoError)

{

if(parse_doucment.isArray())

{

QJsonArray array = parse_doucment.array();

int size = array.size();

for(int i=0; i

{

QJsonValue value = array.at(i);

if(value.isString())

{

QString name = value.toString();

}

else if(value.isBool())

{

bool flag = value.toBool();

}

}

}

}

結果:

數組不同下標對應的值

0:Qt

1:version

2:true

如上,簡單介紹一下常用的JSON庫以及Qt中對JSON的生成與解析,如需更多資料請參考官方文檔,還是那句話,沒有比助手更好、更專業的資料了!

java怎麼使用gson解析json字元串

Gson是谷歌推出的解析json數據以及將對象轉換成json數據的一個開源框架. 現在json因其易讀性和高效率而被廣泛的使用著.

相對於java以及其它json的解析框架,Gson非常的好用.

簡單來講就是根據json的數據結構定義出相應的javabean —“new”出Gson的實例gson—-gson.fromJson(jsonString,JavaBean.class) 即可.

下面給出一個實例來說明.

步驟1:目標:將從webservice傳回的json

{

    “status”: 0,

    “result”: {

        “location”: {

            “lng”: 103.98964143811,

            “lat”: 30.586643130352

        },

        “formatted_address”: “四川省成都市雙流縣北一街154”,

        “business”: “簇橋,金花橋”,

        “addressComponent”: {

            “city”: “成都市”,

            “district”: “雙流縣”,

            “province”: “四川省”,

            “street”: “北一街”,

            “street_number”: “154”

        },

        “cityCode”: 75

    }

}

先普及下json數據格式定義: json數據只有兩種格式.

一種是對象: 一個大括弧包裹的內容就是一個對象.裡面是無數個逗號相間隔的鍵值對

{ “firstName”: “Brett”, “lastName”:”McLaughlin”, “email”: “aaaa” }

一種是數組:一個方括弧包裹的內容就是一個數組,裡面是無數個逗號相間隔的json對象

如:

{

    “people”: [

        {

            “firstName”: “Brett”,

            “lastName”: “McLaughlin”,

            “email”: “aaaa”

        },

        {

            “firstName”: “Jason”,

            “lastName”: “Hunter”,

            “email”: “bbbb”

        },

        {

            “firstName”: “Elliotte”,

            “lastName”: “Harold”,

            “email”: “cccc”

        }

    ]

}

步驟2 定義json數據格式對應的javaBean

public class Result {

private Integerstatus;

private ResultDetailresult;

public Result() {

}

public Result(Integer status, ResultDetail result) {

super();

this.status = status;

this.result = result;

}

public ResultDetail getResult() {

return this.result;

}

public Integer getStatus() {

return this.status;

}

public void setResult( ResultDetail result ) {

this.result = result;

}

public void setStatus( Integer status ) {

this.status = status;

}

@Override

public String toString() {

return “Result [status=” + this.status + “, result=” + this.result

+ “]”;

}

}

public class ResultDetail {

Locationlocation;

Stringformatted_address;

AddressComponentaddressComponent;

Stringbusiness;

StringcityCode;

public ResultDetail() {

super();

// TODO Auto-generated constructor stub

}

public ResultDetail(Location location, String formatted_address,

AddressComponent addressComponent, String business, String cityCode) {

super();

this.location = location;

this.formatted_address = formatted_address;

this.addressComponent = addressComponent;

this.business = business;

this.cityCode = cityCode;

}

public AddressComponent getAddressComponent() {

return this.addressComponent;

}

public String getBusiness() {

return this.business;

}

public String getCityCode() {

return this.cityCode;

}

public String getFormatted_address() {

return this.formatted_address;

}

public Location getLocation() {

return this.location;

}

public void setAddressComponent( AddressComponent addressComponent ) {

this.addressComponent = addressComponent;

}

public void setBusiness( String business ) {

this.business = business;

}

public void setCityCode( String cityCode ) {

this.cityCode = cityCode;

}

public void setFormatted_address( String formatted_address ) {

this.formatted_address = formatted_address;

}

public void setLocation( Location location ) {

this.location = location;

}

}

public class Location {

Stringlng;

Stringlat;

public Location() {

}

public Location(String lng, String lat) {

this.lng = lng;

this.lat = lat;

}

public String getLat() {

return this.lat;

}

public String getLng() {

return this.lng;

}

public void setLat( String lat ) {

this.lat = lat;

}

public void setLng( String lng ) {

this.lng = lng;

}

@Override

public String toString() {

return “Location [lng=” + this.lng + “, lat=” + this.lat + “]”;

}

}

public class AddressComponent {

Stringcity;

Stringdistrict;

Stringprovince;

Stringstreet;

Stringstreet_number;

public AddressComponent() {

super();

// TODO Auto-generated constructor stub

}

public AddressComponent(String city, String district, String province,

String street, String street_number) {

super();

this.city = city;

this.district = district;

this.province = province;

this.street = street;

this.street_number = street_number;

}

public String getCity() {

return this.city;

}

public String getDistrict() {

return this.district;

}

public String getProvince() {

return this.province;

}

public String getStreet() {

return this.street;

}

public String getStreet_number() {

return this.street_number;

}

public void setCity( String city ) {

this.city = city;

}

public void setDistrict( String district ) {

this.district = district;

}

public void setProvince( String province ) {

this.province = province;

}

public void setStreet( String street ) {

this.street = street;

}

public void setStreet_number( String street_number ) {

this.street_number = street_number;

}

@Override

public String toString() {

return “AddressComponent [city=” + this.city + “, district=”

+ this.district + “, province=” + this.province + “, street=”

+ this.street + “, street_number=” + this.street_number + “]”;

}

}

測試:

jsonString ( 目標json數據,已經在最上面寫好的)

System.out.println( “jsonString:” + jsonString );

Gson gson = new Gson();

Result fromJson = gson.fromJson( jsonString.toString() ,Result.class );

System.out.println( “******************************************” );

System.out.println( fromJson );

結果:

jsonString:{“status”:0,”result”:{“location”:{“lng”:103.98964143811,”lat”:30.586643130352},”formatted_address”:”四川省成都市雙流縣北一街154″,”business”:”簇橋,金花橋”,”addressComponent”:{“city”:”成都市”,”district”:”雙流縣”,”province”:”四川省”,”street”:”北一街”,”street_number”:”154″},”cityCode”:75}}

*******************************************

Result [status=0, result=ResultDetail [location=Location [lng=103.98964143811, lat=30.586643130352], formatted_address=四川省成都市雙流縣北一街154, addressComponent=AddressComponent [city=成都市, district=雙流縣, province=四川省, street=北一街, street_number=154], business=簇橋,金花橋, cityCode=75]]

可見,jsonString已經成功的被轉換成了對應的javaBean

步驟3 : 總結.說明

Gson可以很輕鬆的實現javaBean和jsonString之間的互轉.只需要明白json如何定義.剩下的就非常簡單了.

java jSon實例編寫

是這麼個過程

1、在頁面用js發出個ajax請求,請求類型最好寫成json,建議使用jquery的ajax方法,省事。請求的路徑要配在web.xml中

2、這個請求路徑制定的是一個servlet,就是一個java類,繼承自httpservlet。這個servlet里可以通過request對象獲取到輸入參數,根據輸入參數和自己具體的邏輯拼出個字元串,當然是json格式的。然後輸出。這個不會寫說明你需要補一補java web開發的基礎知識。

3、在頁面的ajax請求的success方法中,直接可以獲取到返回的json對象,然後就根據你的json格式處理吧。

$.ajax({

url: ‘ajax/test’,//這個是servlet請求路徑

success: function(data) { //data就是servlet輸出的json格式字元串,這裡會自動轉化為json對象

alert(‘Load was performed.’);

}

});

原創文章,作者:RBH90,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130720.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
RBH90的頭像RBH90
上一篇 2024-10-03 23:29
下一篇 2024-10-03 23:29

相關推薦

  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • JSON的MD5

    在Web開發過程中,JSON(JavaScript Object Notation)是最常用的數據格式之一。MD5(Message-Digest Algorithm 5)是一種常用…

    編程 2025-04-29
  • 使用Java將JSON寫入HDFS

    本篇文章將從以下幾個方面詳細闡述Java將JSON寫入HDFS的方法: 一、HDFS簡介 首先,先來了解一下Hadoop分散式文件系統(HDFS)。HDFS是一個可擴展性高的分散式…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • Django框架:從簡介到項目實戰

    本文將從Django的介紹,以及如何搭建Django環境開始,逐步深入到Django模型、視圖、模板、表單,最後通過一個小型項目實戰,進行綜合性的應用,讓讀者獲得更深入的學習。 一…

    編程 2025-04-28
  • 鍵值存儲(kvs):從基礎概念到實戰應用

    本文將從基礎概念入手,介紹鍵值存儲(kvs)的概念、原理以及實戰應用,並給出代碼實現。通過閱讀本文,您將了解鍵值存儲的優缺點,如何選擇最適合的鍵值存儲方案,以及如何使用鍵值存儲解決…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智慧,Python都扮演著重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28

發表回復

登錄後才能評論