問題タブ [jsonfx]
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.
serialization - JsonFXでポリモーフィックコレクションを逆シリアル化するには?
私の JsonFX シリアライゼーション コードは機能しますが、シリアライズしているオブジェクトにはポリモーフィック エンティティのリストが含まれており、それらはすべて実際の型ではなく基本型として逆シリアル化されています。
ここに私のシリアライゼーションコードがあります:
ご覧のとおり、非常に簡単です。また、クラスをシリアライズ可能にするための属性や特別なものでクラスを装飾していません。ポリモーフィックの問題を除けば、すべてが適切に機能しているように見えます。
では、ポリモーフィック型を適切に逆シリアル化するにはどうすればよいでしょうか?
ありがとう。
asp.net-mvc - ASP.NET MVC 未加工の JSON 投稿データを読み取る
これは私を夢中にさせています。ASP.NET MVC を使用しています。別のサーバー (私の管理下にない) によって呼び出されるコールバック URL として機能する HttpPost アクションを備えたコントローラーがあります。WebAPI や Model Binding を使用せずに、投稿された JSON を動的に読み取りたい。URL には、クエリ文字列パラメーターも渡されます。
コールバック URL は次のようになります。
http://domain.com/callback?secret=1234
私は以下を使用して投稿された入力を読んでみました:
ただし、「jsonData」は常に null または空です。
投稿された入力を取得して JsonFx に貼り付けて、コンテンツに動的にアクセスできるようにしたいだけです。これを最も簡単な方法で行う方法についてのアイデアはありますか?
アップデート
私は次のことを発見しました...
上記は機能しませんが (jsonData は null または空になります)、「秘密の」クエリ文字列パラメーターを省略するように呼び出し元のサーバーにある小さなオプションを構成すると、次のようになります。それは私のサーバーではないので、それで終わりです。この場合、jsonData には正しい投稿された JSON 文字列が含まれます。
これは回避するのが非常にイライラすることであり、標準の MVC コントローラーでクエリ文字列と投稿された JSON データの両方を受け入れる簡単な方法がわかりません。
さまざまなサードパーティ サーバーからさまざまなデータ (GET、フォーム POST、JSON POST、クエリ文字列を使用した JSON POST など) を受け入れるアクション メソッドを備えた "コールバック コントローラー" があります。これらはマーチャント タイプのコールバックであり、情報の伝達に使用される形式や方法を私が制御することはできません。コールバックを受け入れて、そこにあるはずの情報を処理するだけです。
「JSON POST w/a Query String」の場合を除いて、すべてがコントローラーで正常に機能します。
これは、(少なくとも私には) 標準の ASP.NET MVC コントローラーの欠点のように見えます。???
標準の ASP.NET MVC コントローラーで使用できる、これに対する解決策を提案できる人はいますか?
c# - JSON 文字列をキー値として読み取る
私は次のjsonを持っています:
キーと値のペアとして値を取得したい。何かのようなもの:
データ配列の最初の項目を指定する必要があります。
JSONFx.net を使用しています。しかし、それは強く型付けされたオブジェクトを提供します。私はそれを望んでいません。前述のように、JSON をキー値として解析する方法はありますか?
ありがとう
c# - さまざまなタイプのオブジェクトで json 文字列を解析するためのアプローチ
次のjson文字列があります
JSONTOC の使用#
以下のクラスが生成されます。
ご覧のとおり、ツールは可能なすべてのプロパティを持つResultクラスを生成しました。
私はjsonを解析するためのアプローチに従うことを試みています
ここでTは 2 つのクラスに従うことができます
これらのクラス宣言を参照として持っていますが、クラス定義はまったく異なる場合があります。
** Result 型を指定してこの json を解析するにはどうすればよいですか。** オブジェクトに逆シリアル化するために JSONFx.net を使用しています。
ありがとう
c# - 辞書列挙子は、Unity3D の一部の Android デバイスでアプリの途中でインターフェイスの提供を停止します
特定の Android デバイス (Nexus 10、Galaxy Note 3 (SM-N9005、SM-N9000Q)、Galaxy Tab、S4 (SGH-I337、SGH-M919、GT-I9505)) で C# および JsonFX を使用する Unity3D で問題が発生しています。 、Galaxy Note 10.1 (SM-P600、SM-P601)、HTC One)。
アプリの開始時に JsonFX を使用してシリアル化された Dictionary< string, string > は正しく文字列を生成しますが、ある時点で破損し、それ以降は次のメッセージとともに JsonSerializationException をスローします。
調査の結果、不明なイベントの前に、次のコード (JsonFX Dictionary フローを簡略化したもの) があることがわかりました...
...次のタイプの辞書列挙子の取得に成功しました:
返される列挙子は次の型であるため、壊れると代わりに辞書列挙子の取得に失敗します。
興味深いことに、最初にディクショナリを構築し、ゲーム フローを通じて同じインスタンスを再テストしようとしましたが、この場合でも、バグが発生した後にシリアル化できなくなりました。
特に、これは Dictionary< string, string > でのみ壊れます - Dictionary< string, object > で同じテストを実行しており、期待される列挙型を引き続き返します。ゲーム フロー全体でテストを散らかし、ログを記録したにもかかわらず、コルーチンの更新間で壊れているように見えるため、これがどこで壊れているかを正確に突き止めることができませんでした。
バグの前後に読み込まれたアセンブリをダンプして、依存関係の変更バージョンをキャッチしようとしましたが、違いはありません。
この問題は、日本語の文字サポートを改善する無害なデータのみの変更によって導入されたため、既存の問題が明らかになったと考えられます。
この新しいケースをサポートするために Json ライブラリの辞書解析を修正することで問題を簡単に解決しましたが、この根本的な問題の原因と、まだ気付いていない他の問題を引き起こしている可能性についてもっと心配しています.
ディクショナリまたは他のコレクション クラスの動作がこのように変更された方法で同様の問題を見た人はいますか、または問題の原因をさらに追跡する方法について提案がありますか?
c# - ファイルまたはアセンブリ 'JsonFx.Json' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました
いくつかの外部 DLL を含む Web アプリケーションをコンパイルして実行しようとしています。
アプリケーションはエラーなしでコンパイルされますが、実行すると次のエラーが表示されます。
ファイルまたはアセンブリ 'JsonFx.Json' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。
この問題に対する最も一般的な 2 つの解決策は、IIS サーバーで 32 ビット アプリケーションを有効にすることと、解決策が一部のプロジェクトを 32 ビット モードでコンパイルし、他のプロジェクトを 64 ビット モードでコンパイルしないようにすることです。私はこれらの両方を試しましたが、役に立ちませんでした。
どんな助けでも大歓迎です。
アセンブリ ロード トレース:
json - IL2CPP を使用した JsonFx
コンストラクターが IL2CPP で動作していません。取得したログは次のとおりです。
MissingMethodException: メソッドが見つかりません: '既定のコンストラクターが見つかりません...System.ComponentModel.ByteConverter の ctor()'. System.ArgumentNullException..ctor (System.String paramName) [0x00000] で:0 で System.Activator.CreateInstance (System.Type タイプ、ブール値の nonPublic) [0x00000] で:0 で System.Activator.CreateInstance (System.Type type) [0x00000] in :0 at System.ComponentModel.TypeDescriptor.GetConverter (System.Type type) [0x00000] in :0 at JsonFx.Json.TypeCoercionUtility.CoerceType (System.Type targetType, System.Object value) [0x00000] in :0 at JsonFx.Json.JsonReader.ReadNumber (System.Type expectedType) [0x00000] in :0 at JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] in :0
JsonFx.Json.JsonReader.ReadArray (System.Type arrayType) [0x00000] で:0 JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] で:0
JsonFx.Json.JsonReader で。 ReadObject (System.Type objectType) [0x00000] in :0 at JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] in :0 at JsonFx.Json.JsonReader.ReadObject (System.Type objectType) [0x00000] in :0 at JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] in :0 at JsonFx.Json.JsonReader.ReadObject (System.Type objectType) [0x00000] in :0 at JsonFx.Json.JsonReader.Read (System.Type expectedType、ブール型 typeIsHint) [0x00000] in :0
JsonFx.Json.JsonReader.ReadObject (System.Type objectType) [0x00000] で:0 JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] で:0 JsonFx.Json.JsonReader で。 Deserialize (Int32 開始、System.Type 型) [0x00000] in :0 at JsonFx.Json.JsonReader.Deserialize (System.String 値、Int32 開始、System.Type 型) [0x00000] in :0 at JsonFx.Json.JsonReader .Deserialize[BGS] (System.String 値) [0x00000] in :0 at GameData.ParseJson () [0x00000] in :0 at GameData.loaddata () [0x00000] in :0 at mainmenuUI.Start () [0x00000] in :0 at System.Array+InternalEnumerator1[System.Collections.Hashtable+Slot].get_Current () [0x00000] in <filename unknown>:0 System.InternalEnumerator
1:get_Current()
json - JsonFx 特殊文字のデシリアライズ
Json.fx を使用した特殊文字のデシリアライズに問題があります。"ğ,ş,ü" のような文字をシリアライズしようとすると、Jsonfx.Serialize および Jsonfx.Deserialize 関数が正しく機能しません。
アプリケーションのローカリゼーションの問題を解決しようとしています。お願い助けて。
これが私のクラスです:
}
ログ メッセージ:
{"LanguageId":7,"menu":{"MenuStrings":["\u0130ske\u011Fderinovi\u015F","\u015Ea\u011FmiI","\u015Ejikovamo\u011Fvi\u015F"]}} UnityEngine.Debug:Log( Object) Localization:Awake() (Assets/Scripts/Localization.cs:155)
御時間ありがとうございます。