問題タブ [javascriptserializer]

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 投票する
1 に答える
35678 参照

json - XMLラッパーなしでASMXWebサービスからJSONを返しますか?

C#WebサービスからJsonデータを取得する必要があります。

私はこれに基づいていくつかの質問があることを知っています、私がかなりの数を読んだことを信じてください、しかし私をさらに混乱させるだけです。

これは私がしたことです:

私のWebサービスには[System.Web.Script.Services.ScriptService]、クラスと[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]メソッドに次のものが含まれています。

JavaScriptSerializer()また、データを文字列に変換するためにを使用しました

私はこのサービスを使用して呼んでいます$.getJSON()

これを使用しないと、クロスドメイン参照エラーが発生します。

これを行うには、コールバック関数名を取得するようにmサービスを設定する必要があったため、t his.Context.Request["callback"]+シリアル化されたJsonデータを渡します。

しかし、出力ではそれをラップします

タグ内のデータは必要な形式です

また、次を使用してコンテンツタイプを設定してみました:$.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"});

しかし、それでも成功しません。

後で追加:フレンチブルドッグの回答を受け入れました。これは正しいアプローチであることがわかっているのですが、うまく機能しません... WebサービスとWebサイトを同じドメインに配置し、xmlを使用しただけですが、これが最善の方法ではなかったことを知っています。しかし、私はそれに2日間を費やし、それ以上無駄にする余裕はありませんでした。

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

c# - JavaScriptSerializerクラスを使用したJsonエスケープ?

クラスを使用して、JavaScriptSerializerJson のシリアライズとデシリアライズを行っています。

私はknowそこにjson.net図書館があります。

しかし、私の質問は:

class を使用JavaScriptSerializer して json 文字列をエスケープすることもできますか?

それとも自分でやるべきですか?もしそうなら、私はそれをするべきencodeURIComponentですか?

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

.net - 循環参照を回避するためにEF POCO自動生成オブジェクトをシリアル化する方法は?

ASP.NET MVC 3 用のライブラリ (Telerik) を使用しています。

AJAX によっていくつかのデータを返す必要があるすべての機能に問題があります。

私はEF4を使用してデータベースに接続しており、両方の方法でナビゲーションプロパティを必要としています(想像してください、いくつかの投稿を持つユーザーと1つの投稿にユーザーがいます)。

問題は、ライブラリが JSON でデータをエンコードする JavaScriptSerializer を使用していることです。

私が得るエラー

タイプ 'System.Data.Entity.DynamicProxies.Employee_34048F4F6A98297F826C798A27640C7383E95E8EA8282EC8A5F738FA0C77CBC3' のオブジェクトをシリアル化中に、循環参照が検出されました。"

親はその子を参照し、子はその親を参照しているため、例外です。

私はすでにいくつかの回避策を見つけましたが、私を完全に満足させるものは何もありません:

  • データ サーバー バインディングを使用: できません。機能は ajax で動作する必要があります (ページが最後までスクロールされたときに次の要素をロードするグリッドのページャー)
  • 匿名オブジェクトを使用する: データベースにフィールドが追加されている場合、すべての匿名オブジェクトに追加する必要があるため、柔軟ではありません。さらに、必要なサブコレクションが必要な場合は退屈です。このサブリストのすべての要素のオブジェクトも作成します。
  • ViewModel の使用: ほぼ同じ問題です。フィールドがもう 1 つある場合は、すべてのビューモデルにこのフィールドを追加する必要があり、モデルとまったく同じフィールドを持つ 60 個のビューすべてのビュー モデルを作成する必要があります。
  • を使用します。別のものになる。

私はWCFでほぼ同じ問題を抱えていました.循環参照の処理を知っているシリアル化されたものを作成しましたが、ここで同じことができますか? または、これを管理する方法はありますか?

そうでない場合は、「ViewModel」を使用するのが最善の方法だと思いますが、それらの作成を高速化する方法はありますか? 汎用オブジェクトのように、コンストラクターで EF オブジェクトを受け取り、循環参照を削除しますか? 他に何か?

どうもありがとうございました

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

c# - JavaScriptSerializer.Deserialize は、JavaScriptSerializer.Serialize によってシリアル化された日付を受け入れません

JavaScriptSerializer によってシリアル化された日付値が JavaScriptSerializer によって逆シリアル化できないというこの問題の原因を特定するにはどうすればよいですか?

呼び出し元のアプリケーションで:

受信側アプリケーション:

例外をスローしString was not recognized as a valid DateTimeます。

日付が JavaScriptSerializer によってシリアル化されている場合、JavaScriptSerializer によって逆シリアル化できないのはなぜですか?

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

asp.net - asp.net での Json データの逆シリアル化

私はいくつかのjsonデータを持っています。それをプレーンテキストに変換したいのですが、以下はJSONで取得しているコンテンツです

私は以下のクラスを作成しました

現在、名前を取得したいだけです。System.Web.Script.Serialization.JavacriptSerializer クラスを使用してこれを行う方法。

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

c# - JavaScriptSerializer value for i=3?

The JavaScriptSerializer should serialize its parameter to JSON!

And the result is "3" ( which is not JSON)

What am I missing?

edit

Ive written a mail to douglas crockford

3 is not a json object/text but json value.

so i think msdn should clarify the serialize method.

http://i.stack.imgur.com/VOh3X.png

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

c# - Yahoo!の解析 JavaScriptSerializerを使用したPlacemakerJSON応答

Yahoo!から送信されたJSON応答の解析に問題があります。プレースメーカー。ListLocalScopesだけが必要です。

私のクラス定義は次のとおりです。

完全なJSON文字列は次のとおりです。JSONLintで検証しましたが、すべてが順調のようです。

私がする時:List<LocalScope> places = (ser.Deserialize<PlacemakerResponse>(stringJSON)).document.localScopes;

場所リストには、JSON文字列(これまでのところ良好)のように2つのLocalScopeオブジェクトがありますが、3つのメンバー(woeId、name、centroid)はすべてnullに設定されています!!

私はこれまで何度もJavaScriptSerializerを使用しましたが、問題はありませんでしたが、私が間違っていることについて誰かが何か提案がありますか?

ありがとうございました。

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

c# - C# で JavascriptSerializer を使用して不明な JSON を解析する

JavaScriptSerializer を使用して、不明な動的 JSON を解析するにはどうすればよいですか。特に、私は Google Calendar API の独自のラッパーを作成しています。イベントには、プライベート オブジェクトと、未知のプロパティ セットを含む共有オブジェクトの両方を持つ、extendedProperties というオブジェクトがあります。

JavaScriptSerializer 用に次のようなクラスを作成したいと思います。

もちろん問題はあります。

(1)シリアライザーはアンパサンドを理解するので、プロパティ「プライベート」を解析しますか?

(2) JavaScriptSerializer が読み書きできるプロパティの戻り値の型は何ですか? ある種の辞書?

前もって感謝します!

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

c# - JSON をオブジェクトにデシリアライズする

逆シリアル化する必要がある JSON を受信して​​います。そのために JavaScriptSerializer を使用しています。
例: オブジェクト

例: JSON:

デシリアライザーの方法:

しかし、ここに 2 つの異なる種類の JSON メッセージが来るという問題があります。では、どのオブジェクトを逆シリアル化する必要があるかをどのように判断すればよいでしょうか?

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

c# - XElement に似たホルダー オブジェクトに Json をロードすることは可能ですか?

この質問に対する答えは、Json 文字列をハードコードされたクラスにロードする方法を示していますJavaScriptSerializer。ただし、クラス構造をコーディングする必要があり、文字列全体の解析に関心がなく、いくつかの値に関心があるだけの場合、これは実用的ではないように見えます。

xElement.Elements("Items").Select( el => el.Elements("Title"))たとえば、単純に XML 文字列を読み込んでから、すべてのアイテムのタイトルを一覧表示するために使用できる XElement に似たものはありますか。サードパーティのライブラリを使わずに純粋な .NET を使用できることが望ましいです。XElementのようにlinqもできるといいですね

コンテキストが役立つ場合に備えて、StackExchange API (json 形式) によって提供される質問のリストを適切にフォーマットされた文字列に解析しようとしています。タイトル、リンク、作成者などの情報のみが必要です。