2016-06-17 4 views
0

src라는 폴더가있는 app-drawer-template의 폴리머 패키지 구조가 있습니다. 이 폴더에는 entries.json이라는 파일이 있습니다. 사용자가 종이 대화 상자에서 양식 데이터를 제출할 때이 json 객체에 항목을 추가하는 방법을 알아 내려고합니다. 이 양식에서 값을 가져 오는 방법을 이해합니다. json 파일에서 내용을 가져와이 항목에 새 항목을 추가 한 다음 새 항목을 .json 파일에 다시 쓰는 방법을 알아낼 수 없습니다. 여기 자바 스크립트로 JSON 파일에 쓰기

내 형태 :

<paper-dialog id="applynow" entry-animation="scale-up-animation" exit-animation="fade-out-animation"> 
     <paper-dialog-scrollable> 
     <img src="/images/logo.png" width="80%" height="auto" style="margin: 0 auto;"/> 
     <paper-input id="name" label="Full Name"></paper-input> 
     <paper-input id="phone" label="Phone Number"></paper-input> 
     <paper-input id="email" label="Email"></paper-input> 
     <paper-textarea id="desc" label="Why Pick You?" char-counter maxlength="400"></paper-textarea> 
     <paper-button on-click="submitForm">Submit</paper-button> 
     </paper-dialog-scrollable> 
     </paper-dialog> 

그리고 여기에 자바 스크립트입니다 :

submitForm: function() { 
     var data = JSON.parse("/src/entries.json"); 
     data.entries.push({ 
      name: this.$.name.value, 
      phone: this.$.phone.value, 
      email: this.$.email.value, 
      desc: this.$.desc.value 
     }); 
     data = JSON.stringify(data); 
     } 

내가 시도하고있다 그러나 나는 크롬 콘솔에서 볼 것을 나는) 그것을 (JSON.parse를 사용하는 경우 입력이 파일 경로가 아닌 json 형식의 텍스트 문자열이 될 것으로 기대하고 있습니다. 이 파일을 읽고 자바 스크립트로 다시 쓸 수있는 방법이 있습니까? 이 파일은 사용자 저장소에 저장되지 않고 내 패키지 구조에 저장됩니다.

편집 : 내가 읽고 내 JSON에 추가 할 수 있었다 그러나 나는 여전히이 JSON 파일을 다시 작성하는 방법이 필요합니다 CHRISV하는

감사합니다. 여기 내 json 파일을 성공적으로 가져 와서 새 항목을 추가 한 다음 콘솔에 표시하는 새 javascript 함수가 있습니다. 이 .json 파일을 새 행으로 다시 작성하는 쉬운 방법이 있습니까? JSON 구문 분석이 문자열이나 다른 입력로드하고 분석 할 수있는 파일 경로를 NOT 구문 분석 할 것으로 예상하기 때문이다

submitForm: function() { 
     var newName = this.$.name.value; 
     var newPhone = this.$.phone.value; 
     var newEmail = this.$.email.value; 
     var newDesc = this.$.desc.value; 
     var json = $.getJSON("src/entries.json", function(data) { 
      data.entries.push({ 
      name: newName, 
      phone: newPhone, 
      email: newEmail, 
      desc: newDesc 
      }); 
      console.log(data); 
     }); 
     } 
+1

. 사용자의 저장소에 있지 않기 때문에 서버를 통하는 경우를 제외하고는 해당 사용자에게 쓸 방법이 없습니다. 파일을 가져오고 저장하는 방법을 다시 생각해 볼 수 있습니다. –

+0

나는이 정보를 어떻게 저장하고 있는지 다시 생각하는 길을 가기로 결심했다. 이미 파이어베이스를 호스팅 용으로 사용하고 있었기 때문에 Firebase 데이터 스토리지로갔습니다. –

답변

0

.

파일을로드하려면 jQuery (또는 원하는 경우 다른 방법)를 사용하는 것이 좋습니다.

은 그럼 당신은 할 수 있습니다 : http://api.jquery.com/jquery.getjson/

참고 :

$.getJSON("file/path/entries.json", function(data) { 
    //Data loaded here 
    //Do whatever you want with the data 
} 
.fail(function(){ 
    //Handle error with reading json file here 
}); 

현재 jQuery를 getJSON()에 대한 자세한 내용을보실 수 있습니다 자바 스크립트는 기본적으로 상호 참조 쿼리 (동일 출처 정책을) 허용하지 때문에, 당신은거야 서버에서 실행하거나 로컬 서버를 시뮬레이트해야합니다. 나는. 다른 방법으로 MAMP 또는 localhost를 통해 실행합니다. 여기에 이전에 링크 URL과에 대해 읽어 : https://en.wikipedia.org/wiki/Same-origin_policy

편집 : 찾을 수 문제와 관련된 이전에 대답 게시물 : 당신은 새 항목을 소요하고 파일로 저장하는 서비스를 필요 https://stackoverflow.com/a/19473929/4315724

+0

어쨌든 고맙겠습니다.하지만이 .json 파일을 새 항목으로 다시 작성해야합니다. javascript에서이 json 파일에 다시 쓸 수있는 쉬운 방법이 있습니까? 아니면이 작업을 완료하기 위해 PHP 나 다른 언어를 사용합니까? 내가 지정한 내 자바 스크립트 변경 사항으로 내 게시물을 편집했습니다. –

+0

자바 스크립트는 클라이언트 측 언어이므로 서버 측 데이터 소스가 엉망이되어서는 안됩니다 ... json 파일을 업데이트하려면 REST가있는 서버에 데이터 소스를 연결하거나 호스트해야합니다 API를 사용하여 이러한 방식으로 업데이트를 게시하거나 json 파일에 대한 "게시"방법을 만들기 위해 서버 측 (PHP) 솔루션을 만들 수 있습니다.어쩌면 여기에 대한 답이 도움이 될 수 있습니다. http://stackoverflow.com/a/20948680/4315724 – chrisv

+0

대답은 매우 높이 평가되어 왔으며, 저는 지금 조금 더 읽고 논리를 이해했습니다. 이제는 데이터 저장 서비스를 사용하여 쉽게 작업을 수행 할 수 있습니다. 그럼에도 불구하고 도움은 항상 감사합니다 –

관련 문제