teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2018/07/26 09:52

投稿

ones
ones

スコア85

answer CHANGED
@@ -28,7 +28,10 @@
28
28
  // Unknown Character 'c', expecting a string for key statement. 1 17
29
29
  ```
30
30
  ---
31
+ 改行文字列試行です。
31
32
  ```js
33
+
34
+ var jsonlint = require('jsonlint');
32
35
  var JSONLint = require('json-lint');
33
36
 
34
37
  // 改行コード(特殊文字)等が入っていたため、エラーが発生していた。

2

追記

2018/07/26 09:51

投稿

ones
ones

スコア85

answer CHANGED
@@ -51,4 +51,4 @@
51
51
  // pizza & coffee!
52
52
  // "
53
53
  ```
54
- JSON.parseとjson-lintはおすすめです。
54
+ JSON.parseとjsonlintはおすすめです。

1

追記

2018/07/26 09:47

投稿

ones
ones

スコア85

answer CHANGED
@@ -26,4 +26,29 @@
26
26
  console.log(lint2.error, lint2.line, lint2.character);
27
27
  }
28
28
  // Unknown Character 'c', expecting a string for key statement. 1 17
29
- ```
29
+ ```
30
+ ---
31
+ ```js
32
+ var JSONLint = require('json-lint');
33
+
34
+ // 改行コード(特殊文字)等が入っていたため、エラーが発生していた。
35
+ var str1 = '{"profile": "I love \npizza & coffee!\n"}';
36
+ // JSON.parse(str1); // エラー
37
+ // jsonlint.parse(str1); // エラー
38
+ // JSONLint(str1); // エラーしない...
39
+
40
+ var str2 = '{"profile": "I love \npizza & coffee!\n"}'; // "\"はエスケープ処理します。
41
+ // var str2 = JSON.stringify(str1); あるいは、JSON.stringify 処理できます。
42
+ var o = JSON.parse(str2);
43
+ var o2 = jsonlint.parse(str2);
44
+ var o3 = JSONLint(str2);
45
+ console.log(o.profile);
46
+ // "I love
47
+ // pizza & coffee!
48
+ // "
49
+ console.log(o2.profile);
50
+ // "I love
51
+ // pizza & coffee!
52
+ // "
53
+ ```
54
+ JSON.parseとjson-lintはおすすめです。