@e-y

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

AWSJSONの形式に変換する方法を探しています

解決したいこと

AWSで、JSON形式のデータを登録・更新できるように実装したいのですが、求められるJSON形式の変換方法が見つけられない状況です。

参考記事
上記の記事によると、AWSJSONがAWSのJSON文字列であり、その形式に合わせなければエラーになることと、その形式は"{\"a\":1, \"b\":2, \"string\": 123}"のような形であることまでは理解できたのですが、vue.jsで扱うオブジェクトを前述した形式にどのように変換すればよいか、ご存知の方がいればお教えいただきたく思います。

data: {1:"a", 2:"b", 3: "c"}
JSON.stringify(data)
console.log(data)
//result "{"1":"a","2":"b","3":"c"}"

上記のようにJSON.stringifyでは求めるような形式には変換できないため、エラーが生じます。

ご助言いただけると助かります。

0 likes

3Answer

若干ハック気味ですが、JSON.stringify()を2回かけることでお望みの形になります。

const data = {"a": 1, "b": 3, "string": 234};

const json = JSON.stringify(JSON.stringify(data));

console.log(json);
// "{\"a\":1,\"b\":3,\"string\":234}"

const mutation = `
mutation CreateObject {
    putObject(json: ${json}) {
        id
        json
    }
}
`

console.log(mutation);
/*
mutation CreateObject {
    putObject(json: "{\"a\":1,\"b\":3,\"string\":234}") {
        id
        json
    }
}
*/

ただGraphQLにはあまり明るくないので断言はできないんですが、GraphQL用のライブラリかAWSのAmplifyを使うのが正解な気がします。

2Like

This answer has been deleted for violation of our Terms of Service.

Your answer might help someone💌