MAAY
@MAAY

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

「JSONの解析」アクションでエラーになってしまいます

「JSONの解析」アクションでエラーになってしまいます

エラーが出続けてしまい困っています。

sharepoint「ファイルコンテンツの取得」から、取得した情報から
JSONの解析アクションを使用し、一部の情報を抜き出そうとしたのですが、エラーになってしまいます。

抜き出したい文章

{
  "$content-type": "application/pdf",
  "$content": "●●●●●"
}

からcontent-type,contentを抜き出したいです。

コンテンツはsharepointの「ファイルコンテンツの取得」から指定、スキーマはサンプルから生成されたスキーマ(↓)を指定しています。

{
    "type": "object",
    "properties": {
        "$content-type": {
            "type": "string"
        },
        "$content": {
            "type": "string"
        }
    }
}

スクリーンショット 2024-03-11 145849.png

エラー表示

BadRequest. The property 'content' must be of type JSON in the 'ParseJson' action inputs, but was of type 'application/pdf'.

知識のある方教えてくださると助かります。

0

1Answer

JSON文字列をJSONに変換後に「JSONの解析」アクションで、まったく同じエラーになりました。
試しに、"$"を外したところ、正しく文字列を得ることができました。

JSON
{
  "content-type": "application/pdf",
  "content": "●●●●●"
}
スキーマ
{
    "type": "object",
    "properties": {
        "content-type": {
            "type": "string"
        },
        "content": {
            "type": "string"
        }
    }
}

"$"削除できますか。

0Like

Comments

  1. @MAAY

    Questioner

    @nak435
    ご多忙の中、早々にご教示いただき誠にありがとうございます。

    削除する方法ですが、
    replace(body('ファイル_コンテンツの取得'), '$', '')
    などいろいろ試したのですが、うまく行かず苦戦しています・・・

    アドバイス本当に助かりました。ありがとうございます!

  2. 「JSONの解析」を使わないでも、1項目づつなら変数に切り出せました。
    これを使うと、"$"が付いていてもエラーになりません。不思議ですね。

    例;json_objectのJSONオブジェクトを、obj_content_typeというstring型の変数に切り出す。("$content-type""$content"で2つの変数を作る)

    var.png

    いちいち変数に切り出さなくても、元々の利用目的である http のパラメタを動的に作る段階で、@{variables('json_object')['$content-type']}(動的なコンテンツを指定)することも可能だと思われます。

  3. @MAAY

    Questioner

    @nak435
    本当にご丁寧にアドバイスありがとうございます!!
    参考にさせていただいたところ、無事各情報を抜き出すことができ、
    そのあとのHTTP処理もエラー無く通すことが出来ました!
    色々と学ばせていただきました、ありがとうございます。

  4. 結果的に解決できてよかったです。
    よろしければ、当Q&Aをクローズしていただければと思います。

Your answer might help someone💌