問題タブ [jsonmodel]
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.
objective-c - jsonmodel オブジェクトのデシリアライズ
操作のシリアル化に jsonmodel を使用しています。サーバーに投稿を送信し、json データを取得します。データをこのオブジェクトに逆シリアル化します。
簡単なデータを取得できます。ブール値または文字列のように。しかし、データをカスタムオブジェクトにキャストしようとすると. データが破損していました。このコードを使用してキャストしています。
returnAnswer では、コロン (:) が equals(=) に変更され、comas(,) がセミコロン (;) に変更されるため、「pack」は null になります。json データをデシリアライズできません。
これは私の言語パックです
これは私のLanguageStringです
私の質問は、NSObject(Data) 内の json データをカスタム オブジェクトに逆シリアル化するにはどうすればよいですか?
編集注: ResultObject.Data を見ると、14 個のオブジェクトがあります (あるべき姿) が、すべてのオブジェクトにエラーがあります:
予想される ']' エラー: 式の解析中に 1 つのエラーが発生しました
このような。
そして、私がそれに変更NSObject<Optional> *Data
するNSArray<LanguageString> *Data
と、正しく動作します。しかし、NSObject のようなジェネリック型が必要です。
私のJson
私の英語で申し訳ありませんが、助けてくれてありがとう。
ios - Xcode 5単体テストで間違ったクラスが表示される
単体テストの実行がコードの通常の実行とは異なる動作をしているという奇妙な状況に遭遇しています。
特に、JSONModel というライブラリを使用しており、JSON 文字列からオブジェクトを逆シリアル化しようとしているときに、実行中のテスト ケースをステップ実行するときに、特に 1 つの行が問題を引き起こしています。
この行の前 (または後) にブレークポイントを置いて実行すると:
...デバッガーでは\x01
、値 (つまり true) として出力されますが、実際に命令ポインターをステップ実行すると、false のように動作し、代わりに else ブロックに入ります。もう一度、式をデバッガーに再度入力すると、それでも true として表示されます。
誰かが以前に同様の動作を見たことがあり、何が間違っている可能性があるかについて何か提案があるかどうか興味があります. Xcode にテスト用の内部ココア クラスの実装が異なる場合を除き、別の定義を含めていないことは確かです。
更新:さらに奇妙な証拠がいくつかあります:NSLog
実行がどのように物事を見ているかを理解するために、いくつかのステートメントを追加しました。ログインするproperty.type.superclass
と、JSONModel
(予想どおり)戻ってきます。ただし、ログproperty.type.superclass == [JSONModel class]
に記録するとfalse
!
私にとって、これは、単体テストの実行が見ている JSONModel が、実行時に見ている別の JSONModel クラスであることを示しています (そして、それが見るべきもの)。しかし、それがどのように起こっているのか、私にはわかりません。
これは、前方クラス宣言などによって引き起こされる可能性がありますか?
jsonmodel - nil を返す JSONModel `arrayOfModelsFromDictionaries`
私はこれを理解することはできません。Glosbe 辞書 API を解析しています。API 呼び出しは次のとおりです (キーは必要ありません)。
http://glosbe.com/gapi/translate?from=es&dest=eng&format=json&phrase=mujer&page=1&pretty=true
そして、これが応答のCharles解析です。
を取得したいですmeanings -> text
。これが私のWordModel.hです:
そして私の「Meanings.h」:
そして、私はarrayOfModelsFromDictionaries
モデルを初期化するために使用しています:
しかし、私は得nil
ていself.definitions
ます。私はいくつかのことを試しましたが、現時点では立ち往生しています。
編集
私がこれを行うとき:
私はmeaningId
元気になるので、それは私のMeanings
オブジェクトと何かです。ただし、その構文は YouTube JSON フィードの解析に使用している構文と同じであるため、何が間違っているのかわかりません。そのため、何が間違っているのか途方に暮れています。
jsonmodel - プリミティブ型のプロパティをオプションにする方法は?
JSONModel クラスでいくつかのプリミティブ プロパティ オプションを作成したいと考えています。以下のコードを参照してください。
誰でもこれを達成する方法を提案できますか?