問題タブ [json.net]
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.
c# - LINQ を使用した JSON.NET と配列
このParsing JSON using Json.netの質問と回答を見ましたが、必要なものに近いものです。重要な違いは、レコードごとに 1 つ以上の行を形成する x、y ペアの配列を解析する必要があることです。これが私の入力の例です
(完全なリストについては、 http ://sampleserver1.arcgisonline.com/ArcGIS/rest/services/WaterTemplate/WaterDistributionNetwork/MapServer/9/query?outFields= *&where=OBJECTID%3C20&f=pjson を参照してください)
私がする必要があるのは、["features"]["geometry"]["paths"] 配列を x、y ペアで構成される行に解析することです。すべてのパスを取得する方法は次のとおりです(機能配列のように「レコード」ごとに1つ):
これでパスが得られ、そこから各ポイント配列を順番に処理できます。
それが私が立ち往生するところです。JArray および LINQ-y ステートメントからさまざまなキャストを試みていますが、null の結果を取得し続けるか、JProperty の子値にアクセスできないという例外が発生します。
うまくいけば、LINQ を使用して JSON.NET で配列の配列を変換する方法を誰かがすでに扱っており、私が犯しているに違いないばかげた間違い、または私が見落としている明らかな答えを説明できます。
c# - JSON.NETを使用したJSONの逆シリアル化
私はJSONに非常に慣れていないので、APIが提供しているものを解析する必要があります。簡単なグーグル検索でJSON.NETが見つかったので、今それを使用してこのJSONをリストオブジェクトに解析しようとしています。まず第一に、JSON.NETはこれに使用するのに最適なライブラリですか?
これが私がやろうとしていることです。たとえば、Itemというクラスがあります。jsonには多くの「要素」があり(それが呼ばれている場合)、それぞれにidという名前の整数、nameという名前の文字列、creationTimeという名前の日時の3つのフィールドが含まれています。これらすべてのItem「要素」をjsonからItemオブジェクトのリストに解析したいと思います。JSONに一致するようにItemクラスに3つのフィールドを作成しました。JSON.NETを使用してこれをどのように行うことができますか?
私はもう試した:
しかし、それは機能していないようです。キャストエラーが発生します-リストエンクロージャーに処理できませんが、JSONを1つのItemクラスに処理できるかどうかさえわかりません(JSON.NETは十分に文書化されていませんが、私はm明日それを大量にデバッグする予定です)。
JSON.NETで解析する方法を説明するサンプルコードを教えてください。
ありがとう!
更新:ちなみに、言及するのを忘れました-私のプロジェクトは.NET Framework 2.0を対象としているので、JSON.NETのレガシーバージョン:1.3.1を使用しています。最小限のシステム要件を損なう一方で、プロジェクトを.NET 3.5に変換する価値のある大きな利点はありますか?
更新#2: JSON.NETの代わりにSystem.Web.Extensions.dllのJavascriptSerializerクラスを使用することにしました。これに関する質問は、ここに投稿されています。ありがとう!
c# - LINQ to SQL クラスをシリアル化するときの循環参照例外
一連の linq to sql クラスがあり、.NET JavaScriptSerializer を使用してそれらを JSON にシリアル化しました。
ただし、関連するテーブルにレコードを追加するとすぐに、シリアル化によって「循環参照例外」がスローされます。ああっ!
ここに詳しく説明されています。
いくつかのオプションがあります
- linq to sql クラスを関係のないクラスに変換して、循環参照を回避します。
- アソシエーションを無効にして循環参照を切り取る - 私はこれを現実的な選択肢とは考えていません
- ScriptIgnoreAttribute を (何らかの方法で) 使用します。プロパティは生成されたクラスにあり、LINQ to SQL はバディ クラスを自動的に尊重しないため、これを簡単に適用することはできませんでした。
- JSON.NET を使用し、何らかの方法で属性 + バディ クラスを使用して、シリアライザーが関係を横断しようとするのを止めます。
他の誰かがこれに遭遇しましたか?可能であれば最後のオプションを希望しますが、これを行う方法がわかりません。
どんな助けでも大歓迎です
c# - JsonConvert.DeserializeObject に関する JSON.net の問題
次のコードとjsonがあります:
この配列 ["seq1","1"] を Label オブジェクトにデシリアライズしたいと思います。私は何が欠けていますか?いくつかの属性?
実行すると例外が発生します: タイプ 'test_JSONNET.Label' の JsonArrayContract が必要で、'Newtonsoft.Json.Serialization.JsonObjectContract' を取得しました。
tnx
gg
c# - JsonConvert.DeserializeObject と WCF の "d" ラッパー
デフォルトでは、WCF サービスは "d" ラッパーで JSON 応答をラップしますが、解析に問題があることがわかりました。
JsonConvert.DeserializeObject(response)で解析すると、応答は
エラーが発生しました:
応答をに変更すると
私はそれを働かせました。
では、WCF サービスからのこの "d" でラップされた JSON 応答を解析するにはどうすればよいでしょうか? JSONを解析するより良い方法はありますか?
c# - XMLのXPath、SelectNodes、SelectSingleNodeに相当するJSON.NETとは何ですか?
現在、私のコードの構造は、XmlDocument
XmlデータをロードしSelectNodes
てから、繰り返し項目のリストを反復処理するために使用しています。
各要素についてXmlNode.SelectSingleNode
、フィールド要素を選択するために使用しています。
ここで、JSON.NETを使用して、JSONとして配信されたドキュメントで同じ結果を達成したいと思います。答えは、C#で統合可能である限り、JSON.net以外のものでもかまいません。
.net - JSON.NETライブラリを使用した逆シリアル化
JamesNewton-KingのライブラリJSON.NETの動作に少し奇妙な点があることがわかりました。クライアント側のJSONカスタム「機能」の逆シリアル化に使用しており、妥当性テストも含めてすべてが機能します。クライアントが別のタイプの「機能」を送信するまで:
指定された文字列が有効な場合は正しいjsonFeatureを返し、文字列に不正な形式のJSONが含まれている場合は例外を正しくスローしますが、文字列に他のタイプの有効なシリアル化された機能が含まれている場合は誤ってオブジェクトを返します。タイプを指定すると、タイプが同じでない場合、Deserialize()メソッドは例外をスローするはずですが、明らかにそうではありません。
カスタムJSONConverterを使用する(または使用しない)ことは効果がありません。特別なJSON属性を処理するためだけにあります。
ドキュメントを掘り下げることはあまり役に立ちませんでした。3.5バージョンを使用しています(.NET Framework 3.5内でも)。私は何か見落としてますか?前もって感謝します...
.net - NHibernate プロキシ オブジェクトを処理できる .NET JSON シリアライザーはどれですか?
NHibernate プロキシ オブジェクトを処理できる .NET JSON シリアライザーはどれですか? JSON.NET を使用してみましたが、プロキシされたオブジェクトにヒットすると失敗します。
json - Json.netは、c# .net 2.0のオブジェクトのリストに逆シリアル化します
一部の json をコレクション (リスト) に非シリアル化しようとしていますが、どのメソッドがオブジェクトのリストを返すかわかりません。または、何かをループして自分のリストにコピーする必要がありますか?
これに使用する必要がある構文またはメソッドを誰か教えてください。
いくつかのプロパティを使用してオブジェクトを作成したので、データを保持するために使用する準備ができました。(タイトル、URL、説明)
これを試してみましたが、あまり正しくないようです
c# - JSONをリストに逆シリアル化することは可能ですか?> JSON.Netで
私はクラスを持っています:
私が作成するもの:
JSON.Net ライブラリを使用すると、リストをシリアル化して生成できます。
この文字列を逆シリアル化して List> に戻すと、正しいオブジェクト数が得られますが、null です。どんな提案でも大いに役立ちます。