2011-11-11 28 views
5

Tôi biết rằng điều này thực sự là cơ bản, nhưng tôi đã xem ở khắp mọi nơi và tôi không thể tìm thấy câu trả lời đúng.Mã hóa JSON trong PHP sẽ được sử dụng trong ứng dụng iPhone

Với tham chiếu đến một câu hỏi trước của tôi: How to format list in PHP to be used as an NSArray in Objective C?

Tôi đã cố gắng để viết một kịch bản PHP ngắn (không biết gì về nó) mà ứng dụng iphone của tôi sẽ gọi để có được một danh sách các mục. Tôi nghĩ về việc chỉ sử dụng ECHO, vì tôi thực sự không cần phải gửi nhiều hơn một mảng các mục, nhưng được khuyên nên sử dụng JSON hoặc XML, vì vậy đã chọn JSON.

Tôi đang tìm cách mã hóa mảng thành JSON và điều duy nhất tôi có thể tìm thấy là json_encode dường như không cung cấp cấu trúc JSON. Đây là mã PHP của tôi:

<?php 

$arr = array ('a', 'b','c','d','e'); 
echo json_encode($arr); 

?> 

Đây có phải là điều tôi phải sử dụng không? Tôi có làm gì sai không? Cảm ơn rất nhiều.

EDIT:

Thats đầu ra khi chạy script này PHP trong Terminal:

[ "a", "b", "c", "d", "e"]

Theo như tôi biết đây không phải là một cấu trúc JSON, nhưng một lần nữa, tôi biết hầu như không có gì về nó.

+1

Nếu bạn thực hiện một yêu cầu URL trên iOS với địa chỉ trang web mà bạn sẽ cơ bản được mảng mã hóa như json, sau đó bạn cna giải mã nó thành một NSArray trên iOS – Daniel

+1

Tại sao bạn tin rằng json_encode không phải là cung cấp cấu trúc JSON? –

+0

@JasonMcClellan - xem các chỉnh sửa của tôi. – TommyG

Trả lời

4

Chính xác như tôi biết.

Một cách tốt để kiểm tra hay không JSON của bạn là hợp lệ là sử dụng http://jsonlint.com/

Xây dựng:

$arr = array ('a'=>'a value', 'b'=>'b value','c'=>'c value'); 
echo json_encode($arr); 
$arr = array ('a', 'b','c'); 
echo json_encode($arr); 

nên cung cấp cho bạn:

{"a":"a value","b":"b value","c":"c value"} 
["a","b","c"] 

Như đã chỉ ra bởi @ Jason McClellan, thứ hai cũng đúng.

Vì vậy, có, bạn đang làm điều đúng để mã hóa mảng thành một thứ có thể đọc được bằng javascript.

Chức năng khác là json_decode($json); rõ ràng giải mã json. Tài liệu ở đây: http://php.net/manual/en/function.json-encode.php

+2

JSON không yêu cầu cặp key => giá trị. JSON chỉ là cú pháp JS. Trong ví dụ này, ông đã mã hóa một mảng vì vậy những gì ông nhận được là cú pháp JS cho một mảng. Nếu anh ta sử dụng một mảng kết hợp, anh ta sẽ nhận cú pháp JS cho một đối tượng ẩn danh, đó là điều mà hầu hết chúng ta thường thấy khi chúng ta nghĩ về JSON. –

+1

ahh ... sai lầm của tôi, cảm ơn vì điều đó, hãy xem câu trả lời cập nhật – jammypeach

Các vấn đề liên quan