从PHP编码JSON数据

时间:2014-09-01 15:31:50

标签: php ios objective-c json

我通过NSString从我的iOS设备/模拟器向我的服务器发送JSONData NSURLConnection sendSynchronousRequest个。{/ p>

我在应用程序中的JSON字符串是:

jsonString---->{
  "ACTION" : "MyActn",
  "PARAM_1" : "myParm1"
  "PARAM_2" : "myParm2",
}

我发送的NSData形式(不可理解,我认为安全:D):

7b225041 52414d5f 32223a22 6d795061 726d3222 2c224143 54494f4e 223a224d 79416374 6e222c22 50415241 4d5f3122 3a226d79 5061726d 31227d

在服务器端,我有以下代码:

// The code is just for studying JSON parsing and data communication in iOS and PHP
<?php
  data = json_decode(file_get_contents('php://input'), true);
  echo json_encode($data);
?>  

页面回显了实际的JOSN数据数组,我发送数据并通过Objective C代码获取此结果:

 NSData *sendData = [NSURLConnection sendSynchronousRequest:request 
                                          returningResponse:nil 
                                                      error:nil];
 NSString *returningString = [[NSString alloc] initWithData:sendData 
                                                   encoding:NSUTF8StringEncoding];

当我NSLog的'returnsString'时,它直接打印JSON(可读,我认为它是不安全也是:D):

{"PARAM_2":"myParm2","ACTION":"MyActn","PARAM_1":"myParm1"}

所以,我的问题是

  • 我所遵循的方法是否正确?
  • 如何将编码的JSON数据字符串转换为不可读的格式 用PHP代码?
  • 如果我这样做,那么编码的字符串是否可以通过NSJSONSerialization JSONObjectWithDat解码。

注意:请不要提及任何外部库,因为我想使用NSJSONSerialization。 :)

如果我在某个地方错了,请原谅我。我只是一个尝试在iOS中学习JSON解析的人

1 个答案:

答案 0 :(得分:0)

  

我所遵循的方法是否正确?

取决于您如何定义正确。它应该工作。但是,如果您没有充分的理由发出同步请求,那么您应该发出异步请求以阻止阻止用户界面等。

  

如何在PHP代码中将编码的JSON数据字符串转换为不可读的格式?

可能很难阅读,但它肯定不可读。它只是JSON数据的字节表示,可以很容易地进行逆向工程&#34; (甚至不能称之为逆向工程)。这是方式&#34;安全&#34;。如果你真的想要这种方式的安全数据,你必须使用真正的加密。

  

如果我这样做,那么编码的字符串是否可以通过NSJSONSerialization解码JSONObjectWithDat

如果你将你的JSON转换为PHP中的字节(不能告诉你这是怎么做的)你应该能够使用NSData初始化程序将它解码为JSON。