개발자

Json [object Object]

2023년 08월 14일조회 95

Javascript에서 dectionary를 json으로 저장했을때 [object Object] 가 나옵니다. 또한 29번줄에서 SyntaxError: Unexpected token: o 라는 에러가 나옵니다.

1const path = "/sdcard/rpggame/rpg.json";
2const buildpath = "/sdcard/rpggame/build.json";
3const build_value = {
4  "꿈터 아파트 101동": {"manage": "default", "size": 38, "money": 279990000, "own": "N", "max": 8},
5  "꿈터 아파트 202동": {"manage": "default", "size": 31, "money": 100099900, "own": "N", "max": 5},
6  "아림오피스 101동": {"manage": "default", "size": 23, "money": 190000000, "own": "N", "max": 5},
7  "아림오피스 202동": {"manage": "default", "size": 23, "money": 200000000, "own": "N", "max": 5},
8  "아림 대저택": {"manage": "default", "size": 101220, "money": 2010122020101220, "own": "N", "max": 10000},
9  "거지 아파트": {"manage": "default", "size": 1, "money": 160000, "own": "N", "max": 1},
10  "사탕 원룸": {"manage": "default", "size": 20, "money": 10000000, "own": "N", "max": 4},
11  "주택1": {"manage": "default", "size": 42, "money": 760000000, "own": "N", "max": 12},
12  "주택2": {"manage": "default", "size": 42, "money": 760000000, "own": "N", "max": 12},
13  "주택3": {"manage": "default", "size": 42, "money": 760000000, "own": "N", "max": 12},
14  "상가1": {"manage": "default", "size": 75, "money": 10909990000, "own": "N", "max": 30},
15  "상가2": {"manage": "default", "size": 80, "money": 1100000000, "own": "N", "max": 30},
16  "상가3": {"manage": "default", "size": 54, "money": 360000000, "own": "N", "max": 14},
17  "int $class": {"manage": "default", "size": 40, "money": 310000000, "own": "N", "max": 9},
18  "areamye apartment": {"manage": "default", "size": 35, "money": 270000000, "own": "N", "max": 6},
19  "Wrrude apartment": {"manage": "default", "size": 29, "money": 140000000, "own": "N", "max": 4}};
20
21if (!new java.io.File(path).canRead()) {
22  FileStream.write(path, '{}');
23}
24if (!new java.io.File(buildpath).canRead()) {
25  FileStream.write(buildpath, build_value); // JSON 문자열을 파일에 기록
26}
27var Information = JSON.parse(FileStream.read(path));
28var buildString = FileStream.read(buildpath); // JSON 문자열로 파일 내용 읽기
29var build = JSON.parse(FileStream.read(buildpath)); // JSON 문자열을 객체로 파싱
이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

NickSoon님의 프로필 사진

어디서 어떻게 뭘 했는데 object가 나온다고 물어보시는 걸까요? 뭘 물어보시는 걸까요????? 당연히 Json은 object이니까 object로 나오는 건데 JSON은 JavaScript Object Notation이에요 [object Obect]게 나오지 않고 { "name": "John", } 이렇게 나오게 하지 위해서라면 구조를 제대로 설정하셨는지 확인 부탁드려요 출력을 하거나 보려면 JavaScript로 보시는 거라면 JSON.stringify JSON.parse 활용해 보는 것을 추천드려요 다른 선배님들이 도움을 주지 않으실까 하는데 그러려면 무얼 하다 이런 부분에서 이런 문제가 나왔다 (짧게 소스) 뭘 해봤다 등 답변에 필요한 질문을 해 주셨으면 해요

NickSoon님의 프로필 사진

1 파일을 저장할때 json으로 하나요? 스트링으로 변경해서 하지 않나요? (제가 java 안드로이드 환경은 잘 몰라서요) 저장은 json 으로 하고 parse을 한다? 이상한데요?! 2 FileStream.read(buildpath) 이게 두 번 사용되는데 다시 사용하려면 처음으로 포인터를 이동해야 할 것 같아요 잘 모르겠네요 ㅠㅠ

1const path = "/sdcard/rpggame/rpg.json";
2const buildpath = "/sdcard/rpggame/build.json";
3const build_value = {
4  // ... (이하 코드 동일)
5};
6
7if (!new java.io.File(path).canRead()) {
8  FileStream.write(path, '{}');
9}
10
11if (!new java.io.File(buildpath).canRead()) {
12  FileStream.write(buildpath, JSON.stringify(build_value)); // JSON 문자열을 파일에 기록
13}
14
15var Information = JSON.parse(FileStream.read(path));
16
17var buildString = FileStream.read(buildpath); // JSON 문자열로 파일 내용 읽기
18var build = JSON.parse(buildString); // JSON 문자열을 객체로 파싱
NickSoon님의 프로필 사진

NickSoon

스타트업 개발자2023년 08월 15일

지금 쉬면서 모바일로만 봐서 어렵네요 다른 선배님들이 도와주셨으면 좋겠어요 ㅠㅠ

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!