SQLの窓

2013年11月26日


Twitter の検索結果の JSONのフォーマット を PHP の クラスを使って出力(エミュレート)する

ある機械部品やソフトウェアを動作させるのに、オリジナルのシステムを用意するのが難しい場合に、オリジナルと全く同じ動作をするより簡便なシステムを用意することがある。この装置をエミュレータと言う
Twitter の検索結果を Java や C#(mvvmのバインドでは必須) で一覧表示する場合、JSON の構造をクラスで定義しておいて読み込む事が一般的だと思いますが、そのような仕様で動作しているアプリケーションでは、Twitter の検索結果ではなく自前のデータベースで置き換える事によって独自の検索アプリケーションへと比較的簡単に転換する事ができます(既に定義済みのクラス構造を転用する)。 その場合の PHP を使って同様のフォーマットを出力したい場合のサンプルコードです
<?php
header( "Content-Type: application/json; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );

class Twitter_Base {

	public $statuses;

}

class Twitter_User {

	public $id;
	public $name;

}

class Twitter_Search {

	public $user;
	public $text;

}

for( $i = 0; $i < 10; $i++ ) {

	$body = new Twitter_Search();
	$user = new Twitter_User();

	$user->id = ($i+1);
	$user->name = "名前".($i+1);

	$body->user = $user;
	$body->text = "本文".($i+1);
	$records[] = $body;

}

$base = new Twitter_Base();
$base->statuses = $records;

print json_encode($base);

?>


▼ 出力したもの
{"statuses":[{"user":{"id":1,"name":"\u540d\u524d1"},"text":"\u672c\u65871"},{"user":{"id":2,"name":"\u540d\u524d2"},"text":"\u672c\u65872"},{"user":{"id":3,"name":"\u540d\u524d3"},"text":"\u672c\u65873"},{"user":{"id":4,"name":"\u540d\u524d4"},"text":"\u672c\u65874"},{"user":{"id":5,"name":"\u540d\u524d5"},"text":"\u672c\u65875"},{"user":{"id":6,"name":"\u540d\u524d6"},"text":"\u672c\u65876"},{"user":{"id":7,"name":"\u540d\u524d7"},"text":"\u672c\u65877"},{"user":{"id":8,"name":"\u540d\u524d8"},"text":"\u672c\u65878"},{"user":{"id":9,"name":"\u540d\u524d9"},"text":"\u672c\u65879"},{"user":{"id":10,"name":"\u540d\u524d10"},"text":"\u672c\u658710"}]}

▼ 整形したもの
{
    "statuses": [
        {
            "user": {
                "id": 1,
                "name": "名前1"
            },
            "text": "本文1"
        },
        {
            "user": {
                "id": 2,
                "name": "名前2"
            },
            "text": "本文2"
        },
        {
            "user": {
                "id": 3,
                "name": "名前3"
            },
            "text": "本文3"
        },
        {
            "user": {
                "id": 4,
                "name": "名前4"
            },
            "text": "本文4"
        },
        {
            "user": {
                "id": 5,
                "name": "名前5"
            },
            "text": "本文5"
        },
        {
            "user": {
                "id": 6,
                "name": "名前6"
            },
            "text": "本文6"
        },
        {
            "user": {
                "id": 7,
                "name": "名前7"
            },
            "text": "本文7"
        },
        {
            "user": {
                "id": 8,
                "name": "名前8"
            },
            "text": "本文8"
        },
        {
            "user": {
                "id": 9,
                "name": "名前9"
            },
            "text": "本文9"
        },
        {
            "user": {
                "id": 10,
                "name": "名前10"
            },
            "text": "本文10"
        }
    ]
}
関連記事

PHP+MySQLの考えられる最もシンプルなソースコード


posted by lightbox at 2013-11-26 21:54 | PHP + Twitter | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり