問題タブ [stringify]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
12389 参照

c++ - static_assertをsizeofおよびstringifyと組み合わせる方法は?

私のアプリケーションでは、メモリ使用量が非常に重要です。したがって、コンパイル時にメモリサイズをチェックし、サイズが以前に正しいと見なしたものと異なる場合はstatic_assertを与える特定のアサーションがあります。

私はこのようなマクロを定義しました:

このマクロを使用すると、次のように簡単に記述できます。

問題は、このstatic_assertがオフになると、新しいサイズを見つけるのが非常に難しい場合があることです(たとえば、非表示のコンパイラオプション "/ d1 reportAllClassLayout"を使用することによって)。実際のサイズを含めることができれば、はるかに便利なので、次の代わりに:

ブックのサイズが正しくありません!

それは表示されます

ブックのサイズが正しくありません!(予想144、サイズは152)

私はこのようなものを書いてみました:

ただし、関数呼び出しでstringize(#)演算子を使用することはできません。

また、次のように、二重文字列化のトリックを追加してみました。

ただし、印刷する代わりに、を印刷size is 152しますsize is sizeof(Book)

static_assertでsizeofの結果を文字列化する方法はありますか?

0 投票する
7 に答える
26810 参照

javascript - イベントオブジェクトを文字列化する方法は?

JSON.stringify(eventObject);

与えます:

TypeError: Converting circular structure to JSON


dojox.json.ref.toJson(eventObject);

与えます:

TypeError: Accessing selectionEnd on an input element that cannot have a selection.


それを達成するためにすぐに使用できるライブラリ/コードはありますか?

0 投票する
1 に答える
910 参照

json - IE 8 の json stringify で実行時エラーが発生する オブジェクトのプロパティまたはメソッドがサポートされていません

/* 問題の説明 - json stringify メソッドを使用して、javascript 配列を json 表記の文字列に変換しています。stringify は IE8 でサポートされているため、これは機能するはずです。

0 投票する
1 に答える
1177 参照

jquery - JSON.stringify() がデータを $.cookie() に渡さないのはなぜですか

これは私が持っているコードです:

JSON.stringfy() は $.cookie() では動作しませんが、動作するはずです。私は何か間違ったことをしましたか? どうすればこれを修正または機能させることができますか? 私はこの答えを見つけましたが、それは私がやったこととほぼ同じですが、私の場合は何らかの理由で機能しません。この jQuery cookie pluginを使用しています。

0 投票する
1 に答える
1915 参照

javascript - URL を JSON として保存しようとしています

HTML5 ローカル ストレージを使用して多数のサイトの詳細を保存しようとしていますが、ちょっとした壁にぶつかりました。

基本的に、私はアプリケーションがデータをオフラインでキャッシュできるようにしたいと考えています。私が開発してきた方法では、メイン ページが読み込まれるたびにコンテンツが localStorage.sitedata としてキャッシュされます。JSONとして保存しています。

私が書いたコードは次のようになります。

これで、dataToCacheArray のデータはまさに私が求めているものになりました。これは、多数の JavaScript オブジェクトを含む配列です。console.log() を使用して dataToCacheArray を表示すると、Chrome の開発者ツールに表示されるように、そのうちの 1 つを次に示します。

その後、dataToCacheArray の文字列化されたバージョンを dataToCache として保存し、それを console.log() で表示すると、次のようになります。

ご覧のとおり、何らかの理由で URL が文字列化されたバージョンに含まれていません。私がどこで失敗したかについて何か考えはありますか?

0 投票する
4 に答える
29528 参照

javascript - stringifyを使用してオブジェクトをローカルストレージに設定および取得しますか?

車と呼ばれるオブジェクトの作成:

  1. localStorageから読み取った後、オブジェクトを設定して文字列化します。

    stringify後の車----------------->[objectObject] at file:/// android_asset / www / .. ..

  2. オブジェクトをStringifyし、その後、オブジェクトをlocalStorageに設定します。 localStorage.setItem('car',JSON.stringify(car)); car = localStorage.getItem('car');

stringify後の車----------------->"{\"brand \ ":\" Skoda \ "、\" color \ ":\" Red \ "、\" year \ ":\" 2012 \ "}" at file:/// android_asset / www/..。

質問1:オブジェクトを文字列化するときの順序が異なるのはなぜですか?

質問2:なぜそのような文字列化されたオブジェクトを使用できないのですか?

console.log( "car.brand ----->" + car.brand); car.name -----> undefined

0 投票する
6 に答える
16771 参照

javascript - RegExpのシリアル化

JSON.stringifyだから、私はそれがRegExpを空のオブジェクトに減らすことを見つけることに興味がありました-リテラル(フィドル):

この動作は予想されますか?RegExpは、シリアル化するプロパティのないオブジェクトであることに気付きました。とはいえ、日付もオブジェクトです。それでもJSON.stringify()、意味のある文字列を生成することができます。

JSONが。を使用してRegExpに同じ考慮事項を与えることを期待していました。RegExp.prototype.toString()

0 投票する
3 に答える
8676 参照

javascript - 配列オブジェクトのjson文字列化中にオブジェクトプロパティを除外する

ねえ、私はこのような配列オブジェクトを持っています

ここで、最も外側の配列には、クラス A のオブジェクトが含まれています。これには、いくつかの public props といくつかの private porps があり、クラス B のオブジェクトを含む配列も含まれています。これには、いくつかの public フィールドと private フィールドも含まれています。

基本的にこれが私のヒエラルキーです

今、文字列化(シリアル化)している間、シリアル化された文字列に public prop と配列のみを含めたいと思います。

たとえば、上記の JSON 表現の場合、次のようなものが必要です

これで、文字列化する必要があるフィールドのみを返す関数getState() を各クラスに作成できますが、シリアル化する前に JSON.stringify のネイティブ実装でメソッドを呼び出す方法を見つけることができないようです。これを達成する方法はありますか?

JSON.stringify () からの出力で特定の値を非表示にする を参照しましたが、単一の階層で単純な数値または文字列の小道具を除外する方法についてのみ説明していますが、複数の階層で小道具を除外する方法は?

注:私のクラスはすべてモジュールパターンに従います

0 投票する
6 に答える
59488 参照

c# - デシリアライズ中にJSON日付を.NETDateTimeに変換する適切な方法

JSONデータを使用してMVCコントローラーを呼び出すjavascript関数があります。

サーバー側では、コントローラー内で、このエラーを乗り越えることができないようです。

/ Date(1347992529530)/はDateTimeの有効な値ではありません。

この例外は、Deserialize()(以下のメソッドの3行目)を呼び出すと発生します。

私はいくつかのグーグルを行ってきました、そして上記のコードはこれを機能させるための私の最新の試みです(ここからTimeSpanJsonConverterを使用して)。他のアプローチでは、サーバーに日付のみを送信することが示されていますが、いくつかのプロパティとして日付を持つオブジェクトのリストがあります。

これを解決するためのエレガントで一般的に受け入れられているアプローチはありますか、それとも何らかの醜い回避策が必要ですか?これを解決する正しい方法は何ですか?

===================元の質問の終わり===================


編集-JsonConvertを使用してシリアル化することで解決

以下の私の答えを参照してください(この質問のくだらない回避策ではありません)。


編集-安っぽい回避策

ドメインオブジェクトとまったく同じフィールドを使用してDTOを作成しましたが、日付フィールドを逆シリアル化するように文字列を作成しました。デシリアライズできるようになったので、日付を有効な形式に変換して、DTOからドメインオブジェクトを作成できるようにします。

そして、私は単にDTOを逆シリアル化に使用しました。


編集2-JavaScriptの日付を.NETに変換する

完全を期すために、そして私が他の誰かを1時間節約することを期待して、これが私がjavascriptの日付を変換することができた方法です:

0 投票する
2 に答える
1815 参照

php - JSON.stringify データは URL でどのように見えますか

私は呼び出しを介して、 JSON.stringifyjQuery 配列を$_POSTデータに PHP ファイルに送信していました。.ajax()呼び出しは正常に機能し、必要なデータが返されますが、次のようになります。

手動で変数をデバッグして入力する場合、このデータは URL 形式でどのように表示されますか?

http://domain.com/ajax.php?foo=1,2&bar=3,4または、他の何か?

私の解決策: URLはhttp://domain.com/ajax.php?foo=[1,2]&bar=[3,4]