大量json数据可以进行分类拆分,分别存入不同文件当中,以提高阅读效率
或者将json数据存入数据库中
② json格式错误怎样解决
json格式错误解决来方法:
1、在用源org.json.JSONObject 解析从网络获取的json数据时,遇到JSONException: java.lang.String cannot be converted to JSONObject,打印字符串,查看json字符串没有问题;
③ Android请求php服务器的JSON问题
php有一个函数叫json_encode,数据从服务器中拿过来之后,我是直接添加进array里面来进行操作的,android认的JSONObject的格式是两层大括号包着的array。
你将数据从数据库中拿出来之后,组成associative array,用你的例子创建一个空array先~~
$arr = array();
$arr['test'] = 'json';
$arr['mode'] = 'single';
这样加进一个叫$arr的数组(中文是叫这个的吧。。。orz。。。。)之后,你用另一个array再把它装进去,操作是
$arr2 = array('view' => $arr);
这样我们要的那个主要的包含数据的数组$arr就有了一个名字,于是android解析的时候就可以区别了,php输出的时候,要这样输出:
echo json_encode($arr2);
于是就ok~~~会变成一个可以解析的JSONObject哦~~~~
以上全部是我个人研究经验。。。。也许有更简单的方法,求高手指教~~~不过我们整个一个系统里面凡是server和android软件交互的数据我都是这么发过去的,表示JSONArray是更麻烦的东西,JSONObject神马的,还是很简单的哈~~~~~自己研究研究就出来了~~~
④ php怎么解析utf-8带BOM编码的json数据,php解析json数据返回NULL
son_decode函数能够接收utf8编码的参数,但是当参数中包含BOM时,json_decode就会失效。
这个函数能将给版定的字符串转换成UTF-8编码权,移除其中的BOM。
下面是PHP代码:
function prepareJSON($input) {
//This will convert ASCII/ISO-8859-1 to UTF-8.
//Be careful with the third parameter (encoding detect list), because
//if set wrong, some input encodings will get garbled (including UTF-8!)
$imput = mb_convert_encoding($input, 'UTF-8', 'ASCII,UTF-8,ISO-8859-1');
//Remove UTF-8 BOM if present, json_decode() does not like it.
if(substr($input, 0, 3) == pack("CCC", 0xEF,