問題タブ [jsonslurper]
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.
json - 条件が満たされた場合、Groovy を使用して JSON からネストされたマップ/エントリセットを引き出す
コードランドで大きな問題が発生したため、助けが必要です!
Groovy と JsonSlurper を使用して、以下の形式の JSON を処理しています。「タイプ」キーが特定の値に設定されている場合、外側の要素 (私の場合、これはすべてマップである必要があります) を探しています。たとえば、タイプが「Type5」の場合、3 つのマップを取得する必要があります。外側の Type5 を含む「ボディ」マップ、内側の Type5 を含む「ボディ」マップ、および下部近くの Type5 マップ (それぞれの EntrySet も問題なく機能します)。Type3 と Type4 は同じ動作を示します。
有効な Json を持つようにリクエストごとに編集
これをGroovyのJsonSlurperで実行したので、有効なはずです。
私はちょうどこれをやっています:
構造の個々の部分に簡単にアクセスできますが、任意のネスト レベルを持つすべての「Type5」を取得することは、私には不可能です。誰かがこれにいくつかの輝きを放つことができますか?
arrays - Groovy を使用した JSON 配列/オブジェクトの連結
Java または Groovy を使用して、2 つの独立した異なる JSON 配列または JSON オブジェクトをマージまたは連結し、単一の JSON オブジェクトとして扱う方法を教えてください。
以下のサンプル JSON に依存しないオブジェクトを参照してください。最初のオブジェクトは職務情報を保持します。
2 番目の JSON オブジェクトは証明書情報を保持します
以下の形式で両方の JSON を連結してアクセスする必要があります `
これを実現するために利用できるオプションを教えてください。ありがとう
mysql - JsonSlurper を使用して MySQL Json 出力を解析すると、groovy.lang.MissingMethodException が返される
私は現在、Groovy の JsonSlurper を使用して MySQL クエリのセクションの出力を解析する方法に取り組んでいます。
このクエリから LAT 値と LONG 値を取得しようとしています。
Json が含まれているクエリはデータベースに正常に読み込まれ、期待される値が返されますが、JsonSlurper でこの Json を解析しようとすると、parseText() について不平を言う Java Missing Method 例外が発生します。エラーは解決策として parseText を推奨していますが、これが使用されています。
エラーは次のとおりです。
私のコードは次のとおりです。
json を生成するクエリのセクションは次のとおりです。
次に、JsonSlurper メソッドでリストを呼び出します。これは、アプリケーションのデータベース フィールドとして設定されています。
次に、これらのフィールドを Web ページに入力する予定ですが、解析からそれらを返すことができるようになるまで、これを行うことはできません。緯度と経度の値は整数ですが、文字列として解析されます。
groovy - Jenkins で Reader を使用して Groovy JsonSlurper を使用すると、IllegalArgumentException が発生する
Groovy 2.4.3を使用してJenkinsの非システムGroovyスクリプトから実行している次のコードがあります
しかし、実行すると、次の例外が発生します。
JsonSlurper.parse(Reader r) メソッドは Reader を使用するため、これが機能しない理由がわかりません。JsonSlurper.parse(String s) メソッドも使用してみましたが、同じエラーが発生します。FileReader を介して読み取った内容も印刷しましたが、正しいです。
誰かが私が間違っていることを見つけることができますか、それともこれは私が直面している別のジェンキンスの制限ですか.
要求された情報を追加しました:
jsonSlurper: groovy.json.JsonSlurper@19e733e
Print of new File(...)
{ "job": [
{
"jenkins_name": "ForceAResult-fail",
"utmsEnabled": "1",
"utmsCycleId": "1",
"utmsProejct": "Unity",
"utmsTeam": "CA-SS System Software",
"utmsTestName": "Force_a_test",
"utmsTestPlanId": "2",
"utmsTestSetId": "3",
},
{
"jenkins_name": "ForceAResult-pass",
"utmsEnabled": "1",
"utmsCycleId": "1",
"utmsProejct": "Unity",
"utmsTeam": "CA-SS System Software",
"utmsTestName": "Force_a_test",
"utmsTestPlanId": "2",
"utmsTestSetId": "3",
}
]}
Uncaught Exception: java.lang.IllegalArgumentException: argument type mismatch
org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.IllegalArgumentException: argument type mismatch
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:92)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:2699)
Diveshの情報を追加
[EnvInject] - ノード環境変数をロードしています。ワークスペース /var/lib/jenkins/workspace/Groovy バージョン システムのマスター上に構築 Groovy バージョン: 1.8.9 パス: /var/lib/ccache/bin:/c4shares/auto/tools/bin:/usr/local/bin: /usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/accurev/bin:/opt/CmTools/shbin:/re/bin:/re/thirdparty_tools /java/tags/linux/Production/bin:/opt/pegasus/bin:/re/thirdparty_tools/ant/tags/Production/bin:/c4shares/auto/devutils/bin:/usr/lib/mit/bin:/ usr/lib/mit/sbin:/usr/NX/bin
GROOVY_HOME: null
[Groovy バージョン] $ /var/lib/jenkins/tools/hudson.plugins.groovy.GroovyInstallation/Groovy_2.4.3/bin/groovy "/var/lib/jenkins/workspace/Groovy バージョン/hudson6179818785298037506.groovy" 2015 年 9 月 24 日8:11:25 AM org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule newModule 警告: モジュール [groovy-nio] - 拡張クラス [org.codehaus.groovy.runtime.NioGroovyMethods] を読み込めません Groovy スクリプトを実行します - 非システム
Divesh の要求の開始:
json - Json 応答を解析して子ノードを切り捨てる方法
これは、解析しようとしている JSON 応答です。
}
Json から、"ListContent" ノードの下の "id" を抽出し、それを配列に格納する必要があります。また、子ノードの下の「id」を無視する必要があります。これは、これを達成しようとしているグルーヴィーなスクリプトです。
したがって、私が期待している配列は CList [178,179,180,181,182] ですが、現在 null を取得しています。「ListContent」から「id」のみを読み取り、それを配列に書き込む正しいグルービーは何ですか? どんな助けでも本当に感謝しています。前もって感謝します。