検索
ホームページバックエンド開発PHPチュートリアルPHP 言語での JSON の使用と json の配列への復元、json array_PHP チュートリアル

PHP言語でJSONを使用し、jsonを配列、json配列に復元します

以前、phpでjsonデータを返す簡単な例を書きましたが、ネットにアクセスしたところ、jsonも紹介されている記事を突然見つけました。参考にしてみてください。内容は以下の通りです

バージョン 5.2 以降、PHP は json_encode() 関数と json_decode() 関数をネイティブに提供し、前者はエンコードに使用され、後者はデコードに使用されます。

1. json_encode()

1 2 3 4 <?php $arr array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); ?>

出力

1 {"a":1,"b":2,"c":3,"d":4,"e":5}

オブジェクト変換の別の例を見てください:

1 2 3 4 5 6 $obj->body           = 'another post'; $obj->id             = 21; $obj->approved       = true; $obj->favorite_count = 1; $obj->status         = NULL; echo json_encode($obj);

出力

1 2 3 4 5 6 7 8 9 10 11 {    "body":"another post",      "id":21,      "approved":true,      "favorite_count":1,      "status":null  }

json は utf-8 でエンコードされた文字のみを受け入れるため、 json_encode() のパラメーターは utf-8 でエンコードされている必要があります。そうしないと、空の文字または null が返されます。中国語で GB2312 エンコードを使用する場合、または外国語で ISO-8859-1 エンコードを使用する場合は、この点に特別な注意を払う必要があります。

2. インデックス配列と連想配列

PHP は 2 種類の配列をサポートしています。1 つは「値」(値) のみを格納するインデックス付き配列、もう 1 つは「名前と値のペア」(名前/値) を格納する連想配列です。

JavaScript は連想配列をサポートしていないため、json_encode() はインデックス付き配列のみを配列形式に変換し、連想配列をオブジェクト形式に変換します。

たとえば、インデックス配列があります

1 2 3 $arr = Array('one''two''three');echo json_encode($arr);

出力

1 ["one","two","three"]

連想配列に変更する場合:

1 2 3 $arr = Array('1'=>'one''2'=>'two''3'=>'three');   echo json_encode($arr);

出力は次のようになります

1 {"1":"one","2":"two","3":"three"}

データ形式が「[]」(配列)から「{}」(オブジェクト)に変更されていることに注意してください。

「インデックス配列」を「オブジェクト」に強制的に入れる必要がある場合は、次のように書くことができます

1 json_encode( (object)$arr );

または

1 json_encode ( $arr, JSON_FORCE_OBJECT );

3. クラス変換

以下は PHP クラスです:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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 変換を実行します。

1 2 3 4 5 $foo new Foo;$foo_json = json_encode($foo);echo $foo_json;

出力結果は

1 {"public_ex":"これは公開されています"{"public_ex":"this is public"}

パブリック変数 (public) を除いて、他のもの (定数、プライベート変数、メソッドなど) が欠落していることがわかります。

4. json_decode()

この関数は、json テキストを対応する PHP データ構造に変換するために使用されます。以下に例を示します:

1 2 3 4 5 $json '{"foo": 12345}';   $obj = json_decode($json);print $obj->{'foo'}; // 12345

通常、json_decode() は配列ではなく常に PHP オブジェクトを返します。例:

1 2 3 $json '{"a":1,"b":2,"c":3,"d":4,"e":5}';   var_dump(json_decode($json));

結果として、PHP オブジェクトが生成されます:

1 2 3 4 5 6 7 8 9 10 object(stdClass)#1 (5) {  ["a"] => int(1)   ["b"] => int(2)   ["c"] => int(3)   ["d"] => int(4)   ["e"] => int(5)}

PHP 連想配列の生成を強制したい場合は、 json_decode() にパラメータ true を追加する必要があります:

1 2 3 $json '{"a":1,"b":2,"c":3,"d":4,"e":5}';     var_dump(json_decode($json,true));

結果は連想配列になります:

1 2 3 4 5 6 7 8 9 10 array(5) {    ["a"] => int(1)    ["b"] => int(2)    ["c"] => int(3)    ["d"] => int(4)    ["e"] => int(5)}

5. json_decode() の一般的なエラー

次の 3 つの json の記述方法はすべて間違っています。どこにエラーがあるかわかりますか?

1 2 3 4 5 $bad_json "{ 'bar': 'baz' }";$bad_json '{ bar: "baz" }';$bad_json '{ "bar": "baz", }';

これら 3 つの文字列に対して json_decode() を実行すると、null が返され、エラーが報告されます。

最初のエラーは、JSON 区切り文字 (区切り文字) では単一引用符ではなく二重引用符の使用のみが許可されていることです。 2 番目の間違いは、JSON の名前と値のペアの「名前」 (コロンの左側の部分) では、いかなる場合でも二重引用符を使用する必要があることです。 3 番目のエラーは、最後の値の後にカンマを追加できないことです。

さらに、json はオブジェクトと配列を表すためにのみ使用できます。json_decode() が文字列または値に対して使用された場合、null が返されます。

1 var_dump(json_decode("Hello World")); //null

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/941171.html技術記事 PHP 言語で JSON を使用し、json を配列に戻す前に、php から json 配列に json データを返す簡単な例を書きました。また、json も紹介されている記事を突然見つけました。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
VUE3怎么使用JSON编辑器VUE3怎么使用JSON编辑器May 12, 2023 pm 05:34 PM

1、先看看效果图,可以自行选择展示效果2、这是我在vue3项目中使用的JSON编辑器,首先引入第三方插件npminstalljson-editor-vue3yarnaddjson-editor-vue33、引入到项目中//导入模块importJsonEditorVuefrom&#39;json-editor-vue3&#39;//注册组件components:{JsonEditorVue},4、一般后端返回的是会将JSON转为String形式我们传给后端也是通过这种形式,就可以通

SpringBoot之Json的序列化和反序列化问题怎么解决SpringBoot之Json的序列化和反序列化问题怎么解决May 12, 2023 pm 04:07 PM

控制json序列化/反序列化1.@JsonIgnoreProperties的用法@JsonIgnoreProperties(value={"prop1","prop2"})用来修饰Pojo类,在序列化和反序列化的时候忽略指定的属性,可以忽略一个或多个属性.@JsonIgnoreProperties(ignoreUnknown=true)用来修饰Pojo类,在反序列化的时候忽略那些无法被设置的属性,包括无法在构造子设置和没有对应的setter方法.2.@Js

Java怎么调用接口获取json数据解析后保存到数据库Java怎么调用接口获取json数据解析后保存到数据库May 14, 2023 am 10:58 AM

Java调用接口获取json数据保存到数据库1.在yml文件中配置自己定义的接口URL//自己定义的JSON接口URLblacklist_data_url:接口URL2.在Controller中添加请求方法和路径/***@Title:查询*@Description:查询车辆的记录*@Author:半度纳*@Date:2022/9/2717:33*/@GetMapping("/Blacklist")publicvoidselectBlacklist(){booleana=imB

深入解析JWT(JSON Web Token)的原理及用法深入解析JWT(JSON Web Token)的原理及用法Jan 10, 2023 am 10:55 AM

本篇文章给大家带来了关于JWT的相关知识,其中主要介绍了什么是JWT?JWT的原理以及用法是什么?感兴趣的朋友,下面一起来看一下吧,希望对大家有帮助。

java怎么校验json的格式是否符合要求java怎么校验json的格式是否符合要求May 15, 2023 pm 04:01 PM

JSONSchemaJSONSchema是用于验证JSON数据结构的强大工具,Schema可以理解为模式或者规则。JsonSchema定义了一套词汇和规则,这套词汇和规则用来定义Json元数据,且元数据也是通过Json数据形式表达的。Json元数据定义了Json数据需要满足的规范,规范包括成员、结构、类型、约束等。JSONSchema就是json的格式描述、定义、模板,有了他就可以生成任何符合要求的json数据json-schema-validator在java中,对json数据格式的校验,使用

php输出json无法解析的原因和解决方法【总结】php输出json无法解析的原因和解决方法【总结】Mar 23, 2023 pm 04:35 PM

PHP作为一种常见的编程语言,在web开发中使用广泛,其与前端交互的方式也多种多样。其中,输出Json数据是一种常见的交互方式,但有时候会碰到Json无法解析的问题。为什么会出现无法解析的情况呢?下面列举了几个可能的原因。

php如何将xml转为json格式?3种方法分享php如何将xml转为json格式?3种方法分享Mar 22, 2023 am 10:38 AM

当我们处理数据时经常会遇到将XML格式转换为JSON格式的需求。PHP有许多内置函数可以帮助我们执行这个操作。在本文中,我们将讨论将XML格式转换为JSON格式的不同方法。

SpringBoot怎么返回Json数据格式SpringBoot怎么返回Json数据格式May 19, 2023 pm 11:49 PM

一、@RestController注解在SpringBoot中的Controller中使用@RestController注解即可返回JSON格式的数据。@RestController注解包含了@Controller和@ResponseBody注解。@ResponseBody注解是将返回的数据结构转换为JSON格式。@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Controller@Respons

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター