質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

1回答

5731閲覧

破損したjsonファイルを修復したい

agepan

総合スコア66

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

0クリップ

投稿2018/03/14 00:49

現在monacaを用いてiPhoneアプリの開発を行っております。
アプリ上で作成したユーザーデータの内容をJSONとして生成し、外部TXTファイルにその内容を保存しています。

アプリの起動時はそのTXTファイルから連想配列を読み込み、アプリ上にデータを表示する方法を取っているのですが、このJSONデータが破損している場合、読み込みエラーとなってアプリにデータを表示することができなくなってしまいますが、これを修復させる方法などはありますでしょうか?

JSON

1{"data":[ 2 { 3 "項目1":"りんご", 4 "項目2":"みかん" 5 } 6]}

↑これが正常のJSONデータであるとき、

JSON

1{"data":[ 2 { 3 "項目1":"りんご", 4 "項目2":"みかん" 5 } 6]}{"data":[ // ←余計な文字列が入り込む(これは実際におきた例ではなく、イメージです)

例えばこのコードのように、データ書き込み時にアプリが落ちるなどして正しく書き込み処理が完了せず、余計な文字列が入り込むことがあり、破損したJSONファイルとなってしまいます。

現在は書き込み手順を変えるなどしてデータ破損が起きないようにしていますが、タイミングによってはデータ破損が生まれてしまう場合があり、なんとか自動修復させられないかと考えております。

以上よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

どんなものでも壊れたデータは戻らないと思います
むしろ壊れたデータから正常なデータが掃き出せるなら
正常なデータのほうが無駄な情報をもっているということですから
もちろん余分なデータが付加されというなら読める最大限の単位で
読んであとは破棄するなど考えられますが、そのデータが元の
正常なデータだったかどうかは計り知れませんね

通常やるとしたら壊れているJSONデータをパース処理をしてエラーだったら
弾くというくらいではないですか?

投稿2018/03/14 00:56

yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

agepan

2018/03/14 01:25

ご回答ありがとうございます。 やはり難しいでしょうかね…現在はテスト環境で確認できた意図しない文字列の書き込みを記録しておき、JSONデータを開く際にその文字列と一致した場合は正しい文字列に書き換えることで修復させております。ただどのような文字列がエラーなのか事前にすべて把握できないので、なんとかならないものかと考えておりました。
yambejp

2018/03/14 01:34

修復前提でないなら、ファイルのやり取りをテンポラリ経由にして テンポラリの書き込みが完了してから本チャンにコピーするのが一般ですね さらに細かくチェックするならアップしたデータと元データを照合するとか チェックデジットをつけてやり取りするとかいくつか方法はあると思います ただそれは壊させないもしくは壊れていないことを確認するための 処理なので、壊れたデータを修復するという命題は達成が難しい ・・・ということです
agepan

2018/03/14 04:36

破損したデータは仕方がないとして、できることはいかに破損したデータを作らないようにするかと言うこと大事ですね。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問