JSONの処理2

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Nect

Re: JSONの処理2

#61

投稿記事 by Nect » 11年前

みけCAT さんが書きました:成功するかわかりませんが、jansson.hの

コード:

#define JANSSON_H
という行の下に、

コード:

#define NDEBUG
という行を追加してからJanssonをビルドし、そのライブラリを使ってみてください。
それでダメなら、jansson_private.hの

コード:

#define JANSSON_PRIVATE_H
という行について、同様のことをしてみてください。

【追記】
この方法では上手くいかない可能性が高い気がしました。
帰ったらこちらでビルドしたDLLをアップロードしようと思います。
jansson_private.hとjansson.hに追加し、ビルドしました。debug assertion failedというエラーが出てしまいました。

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: JSONの処理2

#62

投稿記事 by へにっくす » 11年前

Nect さんが書きました:jansson_private.hとjansson.hに追加し、ビルドしました。debug assertion failedというエラーが出てしまいました。
janssonライブラリのヘッダに手を加えたのですか。
みけCATさんの真意は分かりかねますが、個人的には提供されたライブラリに関するヘッダーには手を付けるべきではないと思います。
手を加えても意味がないと思います。
それで動いたとして、今後janssonライブラリのバージョンが上がった時、どうするのでしょう?同じことするのでしょうか?
本来やりたい事が後回しになってしまいますよ。
追記でうまくいかない可能性が高いと書いてますが、そもそもやってはいけないことです。

もし私が今やっている仕事でそんなことしたら、同じ仲間から総スカン食らいますよ。それくらいのことをしてるのだと思ってください。
元に戻してくださいね。
最後に編集したユーザー へにっくす on 2013年12月23日(月) 21:50 [ 編集 1 回目 ]
written by へにっくす

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: JSONの処理2

#63

投稿記事 by みけCAT » 11年前

こちらでビルドしたDLL(と関連ファイル)です。
これで試してみてください。
添付ファイル
jansson.zip
Jansson 2.5
(87.23 KiB) ダウンロード数: 210 回
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

Nect

Re: JSONの処理2

#64

投稿記事 by Nect » 11年前

みけCAT さんが書きました:こちらでビルドしたDLL(と関連ファイル)です。
これで試してみてください。
DLLファイルを使ったことがありません。ソリューションエクスプローラーのヘッダファイルからlibjansson-4.dllを追加すればいいのですか?

Nect

Re: JSONの処理2

#65

投稿記事 by Nect » 11年前

へにっくす さんが書きました:
Nect さんが書きました:jansson_private.hとjansson.hに追加し、ビルドしました。debug assertion failedというエラーが出てしまいました。
janssonライブラリのヘッダに手を加えたのですか。
みけCATさんの真意は分かりかねますが、個人的には提供されたライブラリに関するヘッダーには手を付けるべきではないと思います。
手を加えても意味がないと思います。
それで動いたとして、今後janssonライブラリのバージョンが上がった時、どうするのでしょう?同じことするのでしょうか?
本来やりたい事が後回しになってしまいますよ。
追記でうまくいかない可能性が高いと書いてますが、そもそもやってはいけないことです。

もし私が今やっている仕事でそんなことしたら、同じ仲間から総スカン食らいますよ。それくらいのことをしてるのだと思ってください。
元に戻してくださいね。
予期しない不具合が発生する可能性があるため、ヘッダファイルの編集をしない方がいいということでしょうか?念のために、元の状態に戻しておきました。

Nect

Re: JSONの処理2

#66

投稿記事 by Nect » 11年前

http://visualstudiostudy.blog.fc2.com/blog-entry-6.html
dllの使い方はこれで大丈夫ですか?

元々使っていたjansson.hではなく、jansson.zipに入っているjansson.hを使うということですか?

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: JSONの処理2

#67

投稿記事 by みけCAT » 11年前

まず、DLLからlibファイル(インポートライブラリ)を作成してください。
dllファイルとdefファイルがあるディレクトリで

コード:

LIB /DEF:libjansson-4.dll.def /MACHINE:X86 /out:libjansson-4.dll.lib
というコマンドでできるらしいです。
(出典:http://blogs.konuma.org/blog/2006/11/dlllib_5de9/)

次に、作成したlibファイルを今使用しているプロジェクトにリンクします。
コンパイルし、dllを実行ファイル(exe)と同じディレクトリに置いてから実行します。

ヘッダは両方試してみてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: JSONの処理2

#68

投稿記事 by へにっくす » 11年前

Nect さんが書きました:予期しない不具合が発生する可能性があるため、ヘッダファイルの編集をしない方がいいということでしょうか?念のために、元の状態に戻しておきました。
まあ、そういうことです。
みけCATさんがもうdllを提供してるようなので、後はその指示に従ってください。
技術ある人にデバッグ用のを作ってもらうのは仕事でもよくあることですので。
written by へにっくす

Nect

Re: JSONの処理2

#69

投稿記事 by Nect » 11年前

みけCAT さんが書きました:まず、DLLからlibファイル(インポートライブラリ)を作成してください。
dllファイルとdefファイルがあるディレクトリで

コード:

LIB /DEF:libjansson-4.dll.def /MACHINE:X86 /out:libjansson-4.dll.lib
というコマンドでできるらしいです。
(出典:http://blogs.konuma.org/blog/2006/11/dlllib_5de9/)

次に、作成したlibファイルを今使用しているプロジェクトにリンクします。
コンパイルし、dllを実行ファイル(exe)と同じディレクトリに置いてから実行します。

ヘッダは両方試してみてください。
エラーです

【実行結果とディレクトリ】
http://kie.nu/1z12
http://kie.nu/1z14

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: JSONの処理2

#70

投稿記事 by みけCAT » 11年前

libjansson-4.dll.libをlibjansson-4.libにリネームしてからリンクしてみてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

Nect

Re: JSONの処理2

#71

投稿記事 by Nect » 11年前

みけCAT さんが書きました:libjansson-4.dll.libをlibjansson-4.libにリネームしてからリンクしてみてください。
修正しました。

http://kie.nu/1z1d

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: JSONの処理2

#72

投稿記事 by みけCAT » 11年前

では、libjansson-4.dllをlibjansson-4.dll.dllにリネームしてみてください。
ビルドしなおす必要は無いはずです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

Nect

Re: JSONの処理2

#73

投稿記事 by Nect » 11年前

みけCAT さんが書きました:では、libjansson-4.dllをlibjansson-4.dll.dllにリネームしてみてください。
ビルドしなおす必要は無いはずです。
拡張子を省略して表示する設定になっているため、No69からlibjansson-4.dll.dllのままです。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: JSONの処理2

#74

投稿記事 by みけCAT » 11年前

libjansson-4.dll.dllをプロジェクトファイルがあるディレクトリにコピーしてみてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

Nect

Re: JSONの処理2

#75

投稿記事 by Nect » 11年前

みけCAT さんが書きました:libjansson-4.dll.dllをプロジェクトファイルがあるディレクトリにコピーしてみてください。
エラーになってしまいました。同じ手順で、1からやり直してみます。

【ディレクトリ】
http://kie.nu/1z1s
http://kie.nu/1z1q

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: JSONの処理2

#76

投稿記事 by みけCAT » 11年前

No: 69の状態で、json2.exeをエクスプローラから直接実行するとどうなりますか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

Nect

Re: JSONの処理2

#77

投稿記事 by Nect » 11年前

みけCAT さんが書きました:No: 69の状態で、json2.exeをエクスプローラから直接実行するとどうなりますか?
動きませんでした

Nect

Re: JSONの処理2

#78

投稿記事 by Nect » 11年前

C1083エラーでjansson.hを読み込まなくなってしまいました。


トントン
記事: 100
登録日時: 14年前

Re: JSONの処理2

#80

投稿記事 by トントン » 11年前

さかのぼって申し訳ないですけど、ふと思ったので。

拡張子を表示させた状態のjsonファイルを見せてもらうことはできますか。
フルパスを見せてもらうことはできますか。(ユーザ名含む)

後、途中うまくいっていたのに突然できなくなったと思うのですがあっていますか。

dllとlibを一から作り直すのも手かもしれません。
設定を一からし直すのも手かもしれません。

Nect

Re: JSONの処理2

#81

投稿記事 by Nect » 11年前

トントン さんが書きました:さかのぼって申し訳ないですけど、ふと思ったので。

拡張子を表示させた状態のjsonファイルを見せてもらうことはできますか。
フルパスを見せてもらうことはできますか。(ユーザ名含む)

後、途中うまくいっていたのに突然できなくなったと思うのですがあっていますか。

dllとlibを一から作り直すのも手かもしれません。
設定を一からし直すのも手かもしれません。
jsonファイルです

http://kie.nu/1z2n

Nect

Re: JSONの処理2

#82

投稿記事 by Nect » 11年前

みけCAT さんが書きました:No: 69の状態で、json2.exeをエクスプローラから直接実行するとどうなりますか?
dllファイルまで作ってもらったのに、ちゃんと動作しないですみません。

Nect

Re: JSONの処理2

#83

投稿記事 by Nect » 11年前

トントン さんが書きました:さかのぼって申し訳ないですけど、ふと思ったので。

拡張子を表示させた状態のjsonファイルを見せてもらうことはできますか。
フルパスを見せてもらうことはできますか。(ユーザ名含む)

後、途中うまくいっていたのに突然できなくなったと思うのですがあっていますか。

dllとlibを一から作り直すのも手かもしれません。
設定を一からし直すのも手かもしれません。
cmakeからやり直しています。

トントン
記事: 100
登録日時: 14年前

Re: JSONの処理2

#84

投稿記事 by トントン » 11年前

Nect さんが書きました:
トントン さんが書きました:さかのぼって申し訳ないですけど、ふと思ったので。

拡張子を表示させた状態のjsonファイルを見せてもらうことはできますか。
フルパスを見せてもらうことはできますか。(ユーザ名含む)

後、途中うまくいっていたのに突然できなくなったと思うのですがあっていますか。

dllとlibを一から作り直すのも手かもしれません。
設定を一からし直すのも手かもしれません。
jsonファイルです

http://kie.nu/1z2n
と思いきや、へにっくすさんとこでパスの指摘があったのでどうでも良かったですね。
流し読み良くないですね。申し訳ないです。

Nect

Re: JSONの処理2

#85

投稿記事 by Nect » 11年前

https://jansson.readthedocs.org/en/late ... arted.html

Jansson can be built with Visual Studio 2010 (and probably newer versions, too). とあります。visual studio2012では出来ないのかもしれません。もし、環境が原因ならパースの手段を変更します。「そこまでしてパースしたいならば、手動でやった方がいい」と言われるかと思います。しかし、膨大なデータを扱うため自動でパースをしたいので、jansson以外の方法で実現させるかもしれません。

協力してくださった方々ありがとうございました。特に、みけCATさんとへにっくすさんどうもありがとうございました。

まだ問題が未解決のため、解決は押しません。このトピックで続行します。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: JSONの処理2

#86

投稿記事 by みけCAT » 11年前

ビルド設定が64ビット(x64)になっていたら、32ビット(x86)に変更して試してみてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: JSONの処理2

#87

投稿記事 by みけCAT » 11年前

「環境を変更」し、gccでJanssonを使用することを提案します。
私が使用しているのはWindows Vista / gcc4.7.2です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: JSONの処理2

#88

投稿記事 by みけCAT » 11年前

もしくは、Perlを使うのもいいかもしれません。
JSON - search.cpan.org

昔自分が作った時に参考にしたサイトです。
JSON - JSONデータの解析 / Perlモジュール徹底解説 - サンプルコードによるPerl入門
[perl] JSONのエンコード - yref NOTE
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: JSONの処理2

#89

投稿記事 by ISLe » 11年前

Nectさんは、json.jsonファイルをUTF-8で保存するときにメモ帳を使ったようですが、メモ帳はBOMを付加します。
janssonライブラリはBOMをテキストデータとして読み込もうとするそうです。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: JSONの処理2

#90

投稿記事 by みけCAT » 11年前

ISLe さんが書きました:Nectさんは、json.jsonファイルをUTF-8で保存するときにメモ帳を使ったようですが、メモ帳はBOMを付加します。
janssonライブラリはBOMをテキストデータとして読み込もうとするそうです。
ということは、No: 43で間違ったことを教えてしまったということですね。
申し訳ありませんでした。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: JSONの処理2

#91

投稿記事 by ISLe » 11年前

janssonライブラリを改造してBOMに対応させるのだとすれば、間違っているとは言えないでしょう。

その前にjson_loads関数を使って周りから固めていったほうが良い気がします。
UTF-8の日本語文字列を取り出せたとしても変換する必要があるのではないでしょうか。

Nect

Re: JSONの処理2

#92

投稿記事 by Nect » 11年前

こんばんは。JSONファイルのパースを再開します。

今更なんですが、PHPでJSONを取得しているからパースもJSONでした方が手っ取り早いような気がします。実装方法わかりませんけど

Nect

Re: JSONの処理2

#93

投稿記事 by Nect » 11年前

以下のアルゴリズムで、JSONファイルから必要なデータだけを抽出するためのプログラムを実装したいです。

【アルゴリズム】
1.JSONファイルのオブジェクトをパースする
2.(必要としている)オブジェクトのみにアクセスする
3.アクセスしたオブジェクトをtextファイルに書き込むなりする

JSONを取得するために使用したスクリプト

コード:

<?php

 // ライブラリ読み込み
require_once('./UltimateOAuth.php');

 // タイムゾーンを東京に設定
// (date関数をあとで使うならば必要)
//date_default_timezone_set('Asia/Tokyo');

 // パラメータの設定
 $ck = 'ck';
 $cs = 'cs';
 $at = 'at';
 $as = 'as';

 // UltimateOAuthオブジェクト生成
$uo = new UltimateOAuth($ck, $cs, $at, $as);

 // ユーザータイムラインの取得。TwitterからJSON形式の文字列が返ってくるが、
// 自動的にjson_decodeに通されてstdClassオブジェクト化される
$statuses = $uo->get('statuses/user_timeline.json?screen_name=sanda1227&count=2');

//UTF-8にすることで文字化けを回避できる
header('Content-Type: text/html; charset=utf-8');

//stdClassの処理
//$js = new stdClass;
echo json_encode($statuses,JSON_UNESCAPED_UNICODE);

//ファイルの作成
//replace関数の使用
$filename = './tweet.json';
$fp=fopen($filename,'w');

//ファイルの書き込み、閉じる
fwrite($fp,sprintf(json_encode($statuses,JSON_UNESCAPED_UNICODE)));

//ファイルの出力
file_get_contents($filename);

fclose($fp);
 
?>

↓twitter APIからHTTPリクエストで取得したオブジェクトをstdclassに格納し、JSONファイルに書き込んだもの

コード:

 
[{"created_at":"Tue Dec 24 16:45:54 +0000 2013","id":4.1552374008083e+17,"id_str":"415523740080828416","text":"最近世の中(主に自分の周りの出来事)があきらかにおかしい。はやく電球を元に戻さなきゃ","source":"<a href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\">Twitter for Android<\/a>","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":152287295,"id_str":"152287295","name":"いなづき","screen_name":"sanda1227","location":"","description":"意識の高いつぶやきと批評と音楽やデザインのつぶやきをします。将来はフランスにすみたい。","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":18,"friends_count":123,"listed_count":1,"created_at":"Sat Jun 05 15:00:22 +0000 2010","favourites_count":0,"utc_offset":32400,"time_zone":"Irkutsk","geo_enabled":false,"verified":false,"statuses_count":14,"lang":"ja","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/378800000866797589\/dp2OwBL6_normal.jpeg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/378800000866797589\/dp2OwBL6_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/152287295\/1386948029","profile_link_color":"0084B4","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"default_profile":true,"default_profile_image":false,"following":true,"follow_request_sent":false,"notifications":false},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":0,"favorite_count":0,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[]},"favorited":false,"retweeted":false,"lang":"ja"},{"created_at":"Mon Dec 23 15:30:05 +0000 2013","id":4.1514227092122e+17,"id_str":"415142270921224194","text":"睡眠習慣がしっかりしてる人は天才が多いイメージ","source":"<a href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\">Twitter for Android<\/a>","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":152287295,"id_str":"152287295","name":"いなづき","screen_name":"sanda1227","location":"","description":"意識の高いつぶやきと批評と音楽やデザインのつぶやきをします。将来はフランスにすみたい。","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":18,"friends_count":123,"listed_count":1,"created_at":"Sat Jun 05 15:00:22 +0000 2010","favourites_count":0,"utc_offset":32400,"time_zone":"Irkutsk","geo_enabled":false,"verified":false,"statuses_count":14,"lang":"ja","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/378800000866797589\/dp2OwBL6_normal.jpeg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/378800000866797589\/dp2OwBL6_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/152287295\/1386948029","profile_link_color":"0084B4","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"default_profile":true,"default_profile_image":false,"following":true,"follow_request_sent":false,"notifications":false},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":0,"favorite_count":0,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[]},"favorited":false,"retweeted":false,"lang":"ja"}]
 

Nect

Re: JSONの処理2

#94

投稿記事 by Nect » 11年前

パース失敗しました。echo $obj['text'];の行でエラーが発生しています。どのように修正すればいいでしょうか?

もう1つ質問です。C言語なんでも掲示板では、PHPやPerlなどについての質問は可能ですか?

コード:

<?php

 // ライブラリ読み込み
require_once('./UltimateOAuth.php');

 // タイムゾーンを東京に設定
// (date関数をあとで使うならば必要)
//date_default_timezone_set('Asia/Tokyo');

 // パラメータの設定
 $ck = 'ck';
 $cs = 'cs';
 $at = 'at';
 $as = 'as';

 // UltimateOAuthオブジェクト生成
     $uo = new UltimateOAuth($ck, $cs, $at, $as);

 // ユーザータイムラインの取得。TwitterからJSON形式の文字列が返ってくるが、
// 自動的にjson_decodeに通されてstdClassオブジェクト化される
      $statuses = $uo->get('statuses/user_timeline.json?screen_name=sanda1227&count=2');

//UTF-8にすることで文字化けを回避できる
      header('Content-Type: text/html; charset=utf-8');

//stdClassの処理
//$js = new stdClass;
//これ必要ないかも?
      echo json_encode($statuses,JSON_UNESCAPED_UNICODE);

//ファイルの作成
//replace関数の使用も検討
      $filename = './tweet20.json';
      $fp=fopen($filename,'w');

//ファイルの書き込み
      fwrite($fp,sprintf(json_encode($statuses,JSON_UNESCAPED_UNICODE)));

//ファイルの出力
       file_get_contents($filename);

//読み込み
        $json = file_get_contents("tweet20.json");

//文字化け回避
        $json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');

//エラー発生
         echo $obj['text'];

         fclose($fp);
 
?>

Nect

Re: JSONの処理2

#95

投稿記事 by Nect » 11年前

$objがないことに気づき修正しました。相変わらずエラーです。
Nect さんが書きました:パース失敗しました。echo $obj['text'];の行でエラーが発生しています。どのように修正すればいいでしょうか?

もう1つ質問です。C言語なんでも掲示板では、PHPやPerlなどについての質問は可能ですか?

コード:

<?php

 // ライブラリ読み込み
require_once('./UltimateOAuth.php');

 // タイムゾーンを東京に設定
// (date関数をあとで使うならば必要)
//date_default_timezone_set('Asia/Tokyo');

 // パラメータの設定
 $ck = 'ck';
 $cs = 'cs';
 $at = 'at';
 $as = 'as';

 // UltimateOAuthオブジェクト生成
     $uo = new UltimateOAuth($ck, $cs, $at, $as);

 // ユーザータイムラインの取得。TwitterからJSON形式の文字列が返ってくるが、
// 自動的にjson_decodeに通されてstdClassオブジェクト化される
      $statuses = $uo->get('statuses/user_timeline.json?screen_name=sanda1227&count=2');

//UTF-8にすることで文字化けを回避できる
      header('Content-Type: text/html; charset=utf-8');

//stdClassの処理
//$js = new stdClass;
//これ必要ないかも?
      echo json_encode($statuses,JSON_UNESCAPED_UNICODE);

//ファイルの作成
//replace関数の使用も検討
      $filename = './tweet20.json';
      $fp=fopen($filename,'w');

//ファイルの書き込み
      fwrite($fp,sprintf(json_encode($statuses,JSON_UNESCAPED_UNICODE)));

//ファイルの出力
       file_get_contents($filename);

//読み込み
        $json = file_get_contents("tweet20.json");

//文字化け回避
        $json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');

//エラー発生
         echo $obj['text'];

         fclose($fp);
 
?>

コード:

//文字化け回避
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');

$obj = json_decode($json, true);

//エラー発生
echo $obj['text'];

Nect

Re: JSONの処理2

#96

投稿記事 by Nect » 11年前

パース出来ました。皆さん、ご協力ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る