Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Tôi đang cố gắng giải mã một chuỗi JSON thành một mảng nhưng tôi gặp lỗi sau.

Lỗi nghiêm trọng: Không thể sử dụng đối tượng của loại std class làm mảng trong c: \ wamp \ www \ temp \ asklaila.php trên dòng 6

Đây là mã:

<?php
$json_string = 'http://www.domain.com/jsondata.json';

$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata);
print_r($obj['Result']);
?>

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Avishake

4601 Huy hiệu vàng5 Huy hiệu bạc20 Huy hiệu đồng1 gold badge5 silver badges20 bronze badges

hỏi ngày 2 tháng 3 năm 2011 lúc 7:03Mar 2, 2011 at 7:03

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Harsha M Vharsha M VHarsha M V

52.9K119 Huy hiệu vàng339 Huy hiệu bạc517 Huy hiệu đồng119 gold badges339 silver badges517 bronze badges

1

Theo tài liệu, bạn cần chỉ định

$result = json_decode($jsondata, true);
8 là đối số thứ hai nếu bạn muốn một mảng kết hợp thay vì một đối tượng từ
$result = json_decode($jsondata, true);
9. Đây sẽ là mã:

$result = json_decode($jsondata, true);

Nếu bạn muốn các phím

$result = array_values(json_decode($jsondata, true));
0 thay vì bất kỳ tên tài sản nào là:

$result = array_values(json_decode($jsondata, true));

Tuy nhiên, với giải mã hiện tại của bạn, bạn chỉ cần truy cập nó dưới dạng đối tượng:

print_r($obj->Result);

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Abracadaver

77.5K7 Huy hiệu vàng63 Huy hiệu bạc84 Huy hiệu đồng7 gold badges63 silver badges84 bronze badges

Đã trả lời ngày 2 tháng 3 năm 2011 lúc 7:05Mar 2, 2011 at 7:05

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

9

thử cái này

$json_string = 'http://www.domain.com/jsondata.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata,true);
echo "<pre>";
print_r($obj);

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Pang

9.222146 Huy hiệu vàng85 Huy hiệu bạc118 Huy hiệu đồng146 gold badges85 silver badges118 bronze badges

Đã trả lời ngày 2 tháng 3 năm 2011 lúc 7:12Mar 2, 2011 at 7:12

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

DiechodiechodiEcho

52.7K41 Huy hiệu vàng172 Huy hiệu bạc242 Huy hiệu Đồng41 gold badges172 silver badges242 bronze badges

Đây là một đóng góp muộn, nhưng có một trường hợp hợp lệ để đúc

$result = json_decode($jsondata, true);
9 với
$result = array_values(json_decode($jsondata, true));
2. Xem xét những điều sau:
Consider the following:

$jsondata = '';
$arr = json_decode($jsondata, true);
foreach ($arr as $k=>$v){
    echo $v; // etc.
}

Nếu

$result = array_values(json_decode($jsondata, true));
3 được trả lại dưới dạng một chuỗi trống (như kinh nghiệm của tôi, nó thường là),
$result = json_decode($jsondata, true);
9 sẽ trả lại
$result = array_values(json_decode($jsondata, true));
5, dẫn đến cảnh báo lỗi: đối số không hợp lệ được cung cấp cho foreach () trên dòng 3. Bạn có thể thêm một dòng nếu/sau đó Mã hoặc toán tử ternary, nhưng IMO sẽ sạch hơn khi chỉ cần thay đổi dòng 2 thành ...Warning: Invalid argument supplied for foreach() on line 3. You could add a line of if/then code or a ternary operator, but IMO it's cleaner to simply change line 2 to ...

$arr = (array) json_decode($jsondata,true);

... Trừ khi bạn là

$result = json_decode($jsondata, true);
9ing hàng triệu mảng lớn cùng một lúc, trong trường hợp đó là @TCB13 chỉ ra, hiệu suất có thể được thực hiện tiêu cực.

Đã trả lời ngày 4 tháng 2 năm 2014 lúc 10:23Feb 4, 2014 at 10:23

Designosisdesignosisdesignosis

5.14037 Huy hiệu bạc57 Huy hiệu đồng37 silver badges57 bronze badges

Đã trả lời ngày 6 tháng 6 năm 2012 lúc 12:46Jun 6, 2012 at 12:46

Anuj Pandeyanuj PandeyAnuj Pandey

9282 Huy hiệu vàng11 Huy hiệu bạc29 Huy hiệu đồng2 gold badges11 silver badges29 bronze badges

Theo chức năng tài liệu PHP

$result = json_decode($jsondata, true);
9 có một tham số có tên PGS chuyển đổi các đối tượng được trả về thành các mảng kết hợpassoc which convert the returned objects into associative arrays

 mixed json_decode ( string $json [, bool $assoc = FALSE ] )

Vì tham số Assoc là

$result = array_values(json_decode($jsondata, true));
8 theo mặc định, bạn phải đặt giá trị này thành
$result = array_values(json_decode($jsondata, true));
9 để lấy một mảng.assoc parameter is
$result = array_values(json_decode($jsondata, true));
8 by default, You have to set this value to
$result = array_values(json_decode($jsondata, true));
9 in order to retrieve an array.

Kiểm tra mã dưới đây cho một hàm ý ví dụ:

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

đầu ra nào:

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

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

Đã trả lời ngày 30 tháng 3 năm 2018 lúc 4:49Mar 30, 2018 at 4:49

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Điều này cũng sẽ thay đổi nó thành một mảng:

$result = json_decode($jsondata, true);
0

Đã trả lời ngày 6 tháng 11 năm 2013 lúc 6:06Nov 6, 2013 at 6:06

Coreyaviscoreyaviscoreyavis

871 Huy hiệu bạc7 Huy hiệu đồng1 silver badge7 bronze badges

3

$result = json_decode($jsondata, true);
1

Vì vậy, nếu muốn một mảng hơn bạn có thể chuyển đối số thứ hai là 'true' trong hàm

$result = json_decode($jsondata, true);
9.

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Đã trả lời ngày 17 tháng 6 năm 2019 lúc 4:58Jun 17, 2019 at 4:58

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Shanu Singhshanu SinghShanu Singh

1012 Huy hiệu bạc2 Huy hiệu đồng2 silver badges2 bronze badges

$result = json_decode($jsondata, true);
9 Hỗ trợ đối số thứ hai, khi nó được đặt thành
$result = array_values(json_decode($jsondata, true));
9, nó sẽ trả về
print_r($obj->Result);
3 thay vì
print_r($obj->Result);
4. Kiểm tra trang thủ công của hàm
$result = json_decode($jsondata, true);
9 để xem tất cả các đối số được hỗ trợ và chi tiết của nó.

Ví dụ, hãy thử điều này:

$result = json_decode($jsondata, true);
2

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Lỗi

4.4649 Huy hiệu vàng32 Huy hiệu bạc40 Huy hiệu đồng9 gold badges32 silver badges40 bronze badges

Đã trả lời ngày 24 tháng 10 năm 2017 lúc 11:28Oct 24, 2017 at 11:28

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Tôi hy vọng điều này sẽ giúp bạn

$result = json_decode($jsondata, true);
3

Sử dụng chức năng giải mã JSON

$result = json_decode($jsondata, true);
4

Vòng lặp qua mảng json trong PHP

$result = json_decode($jsondata, true);
5

Kết quả: Hệ thống máy tính (Mạng): Computer Systems(Networks)

Đã trả lời ngày 4 tháng 10 năm 2019 lúc 7:37Oct 4, 2019 at 7:37

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Trong PHP JSON_DECODE Chuyển đổi dữ liệu JSON thành mảng liên kết PHP cho Ex:

print_r($obj->Result);
6
For Ex:
print_r($obj->Result);
6

Đã trả lời ngày 29 tháng 10 năm 2016 lúc 13:01Oct 29, 2016 at 13:01

Vui lòng thử điều này

$result = json_decode($jsondata, true);
6

Đã trả lời ngày 3 tháng 2 năm 2017 lúc 9:08Feb 3, 2017 at 9:08

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Cố gắng như thế này:

$result = json_decode($jsondata, true);
7

Đã trả lời ngày 12 tháng 5 năm 2017 lúc 6:08May 12, 2017 at 6:08

Hướng dẫn json decode object to array php - json giải mã đối tượng thành mảng php

Lalithkumarlalithkumarlalithkumar

3.3904 Huy hiệu vàng23 Huy hiệu bạc38 Huy hiệu Đồng4 gold badges23 silver badges38 bronze badges