【问题标题】:Encoding JSON in PHP to be used in iPhone app在 PHP 中编码 JSON 以在 iPhone 应用程序中使用
【发布时间】:2011-11-11 16:41:30
【问题描述】:

我知道这真的很基础,但是我到处寻找,但找不到正确的答案。

参考我之前的一个问题:How to format list in PHP to be used as an NSArray in Objective C?

我一直在尝试编写一个简短的 PHP 脚本(对此一无所知),我的 iphone 应用程序将调用该脚本以获取项目列表。我考虑过只使用 ECHO,因为我真的不需要发送多个项目,但建议使用 JSON 或 XML,所以选择了 JSON。

我正在寻找一种将数组编码为 JSON 的方法,而我唯一能找到的是 json_encode,它似乎不提供 JSON 结构。这是我的 PHP 代码:

<?php 

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

 ?> 

这是我应该使用的吗?我做错什么了吗?非常感谢。

编辑:

这是在终端中运行这个 PHP 脚本时的输出:

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

据我所知,这不是 JSON 结构,但我对它几乎一无所知。

【问题讨论】:

  • 如果您在 iOS 上使用该页面地址发出 URL 请求,您基本上会将数组编码为 json,然后您可以在 iOS 上将其解码为 NSArray
  • 你为什么认为 json_encode 没有提供 JSON 结构?
  • @JasonMcClellan - 查看我的编辑。
  • @TommyG 这是一个 JSON 结构,它是一个 JSON 数组。我建议你让自己更熟悉 JSON - json.org

标签: php iphone objective-c xcode json


【解决方案1】:

据我所知,这是正确的。

测试 JSON 是否有效的一个好方法是使用 http://jsonlint.com/

详细说明:

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

应该给你:

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

正如@Jason McClellan 所指出的,第二个也是正确的。

所以,是的,您将数组编码为 javascript 可读的内容是正确的。

另一个函数是json_decode($json);,它显然解码了json。 此处的文档:http://php.net/manual/en/function.json-encode.php

【讨论】:

  • JSON 不需要 key=>value 对。 JSON 只是 JS 语法。在这个例子中,他编码了一个数组,所以他得到的是数组的 JS 语法。如果他使用关联数组,他会得到匿名对象的 JS 语法,这是我们大多数人在想到 JSON 时习惯看到的。
猜你喜欢
  • 2011-07-23
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 2013-10-11
相关资源
最近更新 更多