顯示具有 Json 標籤的文章。 顯示所有文章
顯示具有 Json 標籤的文章。 顯示所有文章

2011年12月22日 星期四

Load Large Json On Android

Gson
https://sites.google.com/site/gson/Home

Tutorial:
http://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html

在 Android 上如果要讀一個非常大的Json:5000筆、10000筆之類的。
直接讀成 String 一定會讓記憶體爆掉的。
這時候就要用Gson啦~
Tutorial是讀一個Obj,下面範例是讀一個Array。

Sample Data Foamat:


[{"num":"110013"},{"num":"110014"},{"num":"110015"}]

Class:


import com.google.gson.annotations.SerializedName;

public class Store {
@SerializedName("num")
public String num;
}

Sample Code:


InputStream is = YOUR_DATA

Gson gson = new Gson();
Reader reader = new InputStreamReader(is);
Type collectionType = new TypeToken<List<Store>>(){}.getType();
List<Store> stores = gson.fromJson(reader, collectionType);
for(Store store : stores) {
Log.d("GSON", "update:" + store.num);
}

2011年6月20日 星期一

PHP Json Encode Without Unicode

$payload = array(
    'owner' => '我是主人',
    'pets' => array(
        'cat' => '喵',
        'dog' => '汪',
    )
);

echo json_encode($payload), "\n";
// {"owner":"\u6211\u662f\u4e3b\u4eba","pets":{"cat":"\u55b5","dog":"\u6c6a"}}

$rawurlencodeall = create_function('&$val', 'if(is_string($val)) { $val = rawurlencode($val); }');
array_walk_recursive($payload, $rawurlencodeall);
$sJSONPayload = rawurldecode(json_encode($payload));

echo $sJSONPayload;
// {"owner":"我是主人","pets":{"cat":"喵","dog":"汪"}}