json ( $json, $member, $default_key )

Takes a JSON object, as a string, to convert to query string keys.

Access

public static

Parameters

Parameter

Type

Required

Description

$json

string

Required

A JSON object. The JSON string should use canonical rules (e.g., double quotes, quoted keys) as is required by PHP’s json_encode() function.

$member

string

Optional

The name of the “member” property that AWS uses for lists in certain services. Defaults to an empty string.

$default_key

string

Optional

The default key to use when the value for $data is a string. Defaults to an empty string.

Returns

Type

Description

array

The option group parameters to merge into another method’s $opt parameter.

Examples

Convert a JSON object into a parameter list.

// Test data
$json = '{
	"IpPermissions": [
		{
			"IpProtocol": "tcp",
			"FromPort": 3023,
			"ToPort": 3024,
			"Groups": [
				{ "UserId": "user1", "GroupName": "group1" },
				{ "UserId": "user2", "GroupName": "group2" }
			],
			"IpRanges": [
				{ "CidrIp": "192.168.0.1" },
				{ "CidrIp": "192.168.0.2" }
			]
		},
		{
			"IpProtocol": "tcp",
			"FromPort": 3023,
			"ToPort": 3024,
			"Groups": [
				{ "UserId": "user1", "GroupName": "group1" },
				{ "UserId": "user2", "GroupName": "group2" }
			],
			"IpRanges": [
				{ "CidrIp": "192.168.0.1" },
				{ "CidrIp": "192.168.0.2" }
			]
		}
	]
}';

$data = CFComplexType::json($json);

// Success?
var_dump($data);
Result:
array(18) {
  ["IpPermissions.1.IpProtocol"]=>
  string(3) "tcp"
  ["IpPermissions.1.FromPort"]=>
  int(3023)
  ["IpPermissions.1.ToPort"]=>
  int(3024)
  ["IpPermissions.1.Groups.1.UserId"]=>
  string(5) "user1"
  ["IpPermissions.1.Groups.1.GroupName"]=>
  string(6) "group1"
  ["IpPermissions.1.Groups.2.UserId"]=>
  string(5) "user2"
  ["IpPermissions.1.Groups.2.GroupName"]=>
  string(6) "group2"
  ["IpPermissions.1.IpRanges.1.CidrIp"]=>
  string(11) "192.168.0.1"
  ["IpPermissions.1.IpRanges.2.CidrIp"]=>
  string(11) "192.168.0.2"
  ["IpPermissions.2.IpProtocol"]=>
  string(3) "tcp"
  ["IpPermissions.2.FromPort"]=>
  int(3023)
  ["IpPermissions.2.ToPort"]=>
  int(3024)
  ["IpPermissions.2.Groups.1.UserId"]=>
  string(5) "user1"
  ["IpPermissions.2.Groups.1.GroupName"]=>
  string(6) "group1"
  ["IpPermissions.2.Groups.2.UserId"]=>
  string(5) "user2"
  ["IpPermissions.2.Groups.2.GroupName"]=>
  string(6) "group2"
  ["IpPermissions.2.IpRanges.1.CidrIp"]=>
  string(11) "192.168.0.1"
  ["IpPermissions.2.IpRanges.2.CidrIp"]=>
  string(11) "192.168.0.2"
}

Source

Method defined in utilities/complextype.class.php | Toggle source view (4 lines) | View on GitHub

public static function json($json, $member = '', $default_key = '')
{
    return self::option_group(json_decode($json, true), $member, $default_key);
}

Copyright © 2010–2013 Amazon Web Services, LLC


Feedback