質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1295閲覧

javascriptの文字列の型変換について

python_k

総合スコア7

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/06/07 05:25

編集2021/06/08 23:32

javascriptの型の変換について質問です。

以下のような文字列型のデータを辞書型を含んだリスト型に変換することはできますでしょうか?
よろしくお願いします。
test="[[{"id":100,"value":250,"unit":"string","date":"2021/6/4 17:00"}],[{"id":101,"value":250,"unit":"string","date":"2021/6/4 17:30"}]]"

下記がデータの送信側のコードです。

python

1import json 2import sys 3import pymysql 4 5db_host="*****" 6name="*****" 7password="*****" 8db_name="*****" 9table="*****" 10 11try: 12 conn = pymysql.connect(host=db_host, user=name, passwd=password, db=db_name, connect_timeout=25,cursorclass=pymysql.cursors.DictCursor) 13except: 14 sys.exit() 15 16def lambda_handler(event, context): 17 cur=conn.cursor() 18 cur.execute("SELECT MAX(date),id FROM {} GROUP BY id;".format(table)) 19 results=cur.fetchall() 20 AllDatas=[] 21 for i in results: 22 ID=i["id"] 23 Datetime=i["MAX(date)"] 24 cur.execute("""SELECT id,date,value,unit FROM {} WHERE id="{}" AND date="{}";""".format(table,ID,Datetime)) 25 result=cur.fetchall() 26 result[0]["date"]=str(result[0]["date"]) 27 AllDatas.append(result[0]) 28 response={ 29 "statusCode":200, 30 "body":json.dumps(AllDatas), 31 "headers":{ 32 "Access-Control-Allow-Origin":"*" 33 } 34 } 35 return response 36 cur.close() 37 conn.close()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2021/06/07 05:27

「辞書型」とは何でしょう。JavaScriptには無い概念ですので、具体的に得たいデータを例示してください。
m.ts10806

2021/06/07 05:32

それは「key:value形式のオブジェクト」というのが正しいかと。
horse_n_deer

2021/06/07 05:33

文字列内に含まれている `datetime.datetime` というのはjavascriptの関数ですか? 単純なkey-value型の文字列であれば JSON.parse を使用して下記のように JSON.parse('[[{"A":100,"B":250,"C":"2021,6,4,17,00"}]]') // [[{A: 100, B: 250, C: "2021,6,4,17,00"}]] と変換できますが、関数を含む文字列の場合、evalなどのバッドパーツ(推奨されない記法)を利用する必要があります。
kei344

2021/06/07 05:35

また、例示されているものはエラーが出ますが、何らかの言語の出力前のコードではないでしょうか。 実際に出力されたデータを提示されたほうが良いです。(「"」がエスケープされていないのでエラーになる)
python_k

2021/06/07 05:52

すいません。 オブジェクトでした。 jsonのようだったのでJSON.parseを使用してみたのですが、typeofを使用したところstringと表示されてしまいます。
kei344

2021/06/07 05:56

> jsonのようだったので 似てはいますがそもそもエラーが出るのでJavaScriptで扱う以前の問題です。引用符がまず間違っています。あと「datetime.datetime(2021,6,4,17,00)」はJSONでは許容されません。文字列にする必要があります。 どうやってそのデータを取得して、どうやって使いたいのでしょう。
m.ts10806

2021/06/07 05:56

コード全体提示されたほうが良いかと。 なんの言語かわからない定義部分のコードだけでは限界があります。
python_k

2021/06/07 07:04

すいません。 データが送られてくる元のコードを追記しました。 javascriptでajax通信を行い、リストの形で表示したいと考えています。
guest

回答2

0

ベストアンサー

javascriptでajax通信を行い、リストの形で表示したいと考えています。

Ajax送信時のdataTypeをjsonにすれば良いのではないでしょうか。
そしてサーバー側のレスポンスヘッダ Content-Typeapplication/jsonを指定。
これでレスポンスがオブジェクトになるので、あとはJavaScriptで良しなに。

投稿2021/06/07 07:11

m.ts10806

総合スコア80854

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

python_k

2021/06/07 23:26

ありがとうございます。 無事変換できました。
m.ts10806

2021/06/08 00:19

なぜ提示されたコードを消してしまったのでしょうか。 質問と回答の整合性が怪しくなるのでやめてください。
guest

0

文字列で処理するならバックスラッシュで囲めばよいですが

"B":"250,"

もし最終的にオブジェクトで管理したいならB要素の値がおかしいですね。

投稿2021/06/07 05:30

編集2021/06/07 05:31
yambejp

総合スコア114968

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問