PHP code for converting arrays into json strings

Source: Internet
Author: User

Data conversion in js format is a common method for data transmission. For example, ajax often uses to convert data to json and then convert it back. Let's look at an example.

The Code is as follows: Copy code

Function array_to_json ($ array ){
If (! Is_array ($ array )){
Return false;
}
 
$ Associative = count (array_diff (array_keys ($ array), array_keys ($ array ))));
If ($ associative ){
 
$ Construct = array ();
Foreach ($ array as $ key => $ value ){

// We first copy each key/value pair into a staging array,
// Formatting each key and value properly as we go.


// Format the key:
If (is_numeric ($ key )){
$ Key = "key _ $ key ";
}
$ Key = ". addslashes ($ key ).""";

// Format the value:
If (is_array ($ value )){
$ Value = array_to_json ($ value );
} Else if (! Is_numeric ($ value) | is_string ($ value )){
$ Value = ". addslashes ($ value ).""";
}

// Add to staging array:
$ Construct [] = "$ key: $ value ";
}
 
// Then we collapse the staging array into the JSON form:
$ Result = "{". implode (",", $ construct )."}";
 
} Else {// If the array is a vector (not associative ):
 


$ Construct = array ();
Foreach ($ array as $ value ){

// Format the value:
If (is_array ($ value )){
$ Value = array_to_json ($ value );
} Else if (! Is_numeric ($ value) | is_string ($ value )){
$ Value = ". addslashes ($ value ).""";
}

// Add to staging array:
$ Construct [] = $ value;
}
 
// Then we collapse the staging array into the JSON form:
$ Result = "[". implode (",", $ construct). "]";
}
 
Return $ result;
}

You can try this and change json_encode to the above function to see if it is normal.

The Code is as follows: Copy code

If ($ _ GET ['enabs'] = 'OK '){
Echo json_encode (array ('A' => 'wang jin'); exit;
}
?> <Script type = "text/javascript" src = "jquery. js"> </script> <script type = "text/javascript">
$ (Function (){
$. Get ("? Enews = OK ", function (result ){
Alert (result );
});
});
</Script>
 

About json_encode in php

Json_encode () converts different types of PHP variables to the corresponding JSON string json_encode (mixed $ value [, int

$ Options = 0])

PHP 5.3.0

JSON_HEX_QUOT: Convert all double quotation marks (") to u0022.
// Instance code:

The Code is as follows: Copy code
$ Data = '"';
Echo json_encode ($ data );//"""
Echo json_encode ($ data, JSON_HEX_QUOT );

// "U0022" ■ JSON_HEX_TAG: Convert all greater than signs (>) to u003E

All minor signs (<) are converted to u003C.
JSON_HEX_AMP: Convert all ampersand (&) to u0026.
JSON_HEX_APOS: converts all single quotes (') to u0027.
JSON_FORCE_OBJECT: When the value is not associated with an array, the output result is a JSON object. When the receiver requires that the data be an object and the value is an empty array

.

// Instance code:

The Code is as follows: Copy code
$ Data = array ();
Echo json_encode ($ data); // []
Echo json_encode ($ data, JSON_FORCE_OBJECT );//{}

PHP 5.3.3

JSON_NUMERIC_CHECK: Encodes numeric strings as numbers.

PHP 5.4.0

JSON_BIGINT_AS_STRING: Encodes large integers as their original string value. Available since PHP
5.4.0.

JSON_PRETTY_PRINT: Use whitespace in returned data to format it. Available since PHP 5.4.0.
JSON_UNESCAPED_SLASHES: Don't escape/. Available since PHP 5.4.0.
JSON_UNESCAPED_UNICODE: Encode multibyte Unicode characters literally (default is to escape as uXXXX ).

Available since PHP 5.4.0.


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.