1

struts+java+hibernate フレームワークに基づく Web アプリケーションに取り組んでいます。基礎となるデータベースは MySQL 5 です。

ユーザーの活動はDBに記録され、後で他のユーザーに表示されます。ユーザーが何らかのアクティビティを実行すると、アクティビティに関連する情報もアクティビティとともに保存されます。現在、実装の変更があります。以前は、このアクティビティ情報はプレーン テキストとして保存されていましたが、使いやすくするために json として保存されるようになりました (この情報は多くの値が null になる可能性があるという事実を考慮して)。

保存された情報は、後で Web ページにアクティビティを表示するために使用されます。

すべての新しいアクティビティについて、(情報) データは Java コードでエンコードされた JSON を取得し、エンコードされた JSON 文字列は DB に格納されます。問題は、古いアクティビティに対応するデータにあります。

DBに保存されたデータをJSONエンコードする方法はありますか? または、jquery/javascript で文字列を JSON 形式でエンコードし、Json オブジェクトを適切に構築する方法はありますか?

DB に格納されるデータの一般的な形式 (移行後) は次のとおりです。

{"key1":"value1", "key2":"value2","key3":"value3",...}

すでにDBにあるデータの形式は次のとおりです。

value1,value2,value3,... 

これらの値 (値 1、値 2、値 3 など) には、任意の特殊文字を含めることができます。

4

3 に答える 3

1

多分あなたはJSON.parseJSON.stringify方法を見たいと思うでしょう。 http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/

于 2013-07-01T12:52:10.643 に答える
0

次のように解決しました:

上記のjson文字列がinfoという名前の変数にあるとします。次に、最初に外側のすべての二重引用符をキーに置き換え、値を次のように単一引用符に置き換えます

info = info.replace(/{\"/g,"{'");
info = info.replace(/\"}/g,"'}");
info = info.replace(/\",\"/g,"','");
info = info.replace(/\":\"/g,"':'");

次に、JSON 文字列化を行います。

info = JSON.stringify(info);

外側の二重引用符を元に戻し、JSON 文字列化に追加された余分な引用符を削除します。

info = info.replace(/\"{'/g,"{\"");
info = info.replace(/'}\"/g,"\"}");
info = info.replace(/','/g,"\",\"");
info = info.replace(/':'/g,"\":\""); 

次に、JSON 解析を行います。

info = JSON.parse(info);

結果は JSON オブジェクトです。

于 2013-07-02T06:17:45.993 に答える
0

jQuery では、次のコードを使用して json をエンコードできます。

var data  = {"key1":"value1", "key2":"value2","key3":"value3",...};
$.each(data,function(index,value)){
    alert(index+" | "+value);
});

$.eachjQueryの機能を利用します。

于 2013-07-01T12:51:18.903 に答える