2014-02-15 1 views
0

간단한 REST 응용 프로그램을 Sails에 빌드하고 올바른 데이터를 array 유형의 모델 속성에 저장하려고합니다.배열에서 json으로 문자열 유형을 변환하는 방법을 설명합니다.

경로

http://localhost:1337/locations/create?name=savassibeer&locations={latitude:23789472398.2344,longitude:2734637892.56756756}&locations={latitude:22.2344,longitude:2562.56756756,date:2014-02-15T11:00:00}

{ 
    name: "savassibeer", 
    locations: [ 
    "{latitude:23789472398.2344,longitude:2734637892.56756756}", 
    "{latitude:22.2344,longitude:2562.56756756,date:2014-02-15T21:49:23.084Z}" 
    ], 
    createdAt: "2014-02-15T21:49:23.084Z", 
    updatedAt: "2014-02-15T21:49:23.084Z", 
    id: "52ffe0e345d19ec72b4fac77" 
} 

가 어떻게 유효한 JSON 개체에 locations에서 문자열을 변환 할 수있는 결과를 게시하고 저장하는 방법?

+0

문제가 발생했는지 확인하십시오 : 저장하기 전에'locations.locations'의 항목이 유효한 JSON 문자열인지 확인 하시겠습니까? 모든 항목을 실제 js 객체로 저장 하시겠습니까? 아니면 단지 json 문자열에 대한 js 객체를 가져 오시겠습니까? – marionebl

+0

Plus : 어느 버전의 Sails/Sails 어댑터를 사용합니까? – marionebl

답변

1

브라우저에서 /locations/create과 같은 URL 바로 가기를 사용하면이 작업을 수행 할 수 없습니다. 그들은 타입 추측을하도록 설계되지 않았습니다. 이 방법으로 데이터를 저장하려는 경우, 답변은 Locations 컨트롤러에 사용자 정의 create 작업을 작성하여 1) 위의 @marionebl과 같이 위치 데이터의 유효성을 검사하고 2) locations 속성을 자바 스크립트 배열로 설정합니다.

+0

위치 속성을 컨트롤러 또는 모델의 배열로 설정하겠습니까? – hamncheez

+0

@hamncheez이 모델의'locations' 속성은'type : 'array''입니다. 이것은'type :'json '에 대한 별명입니다. 컨트롤러 동작에서'Locations.create()'를 할 때,'locations' 값을 배열로 설정할 때입니다 (예를 들어'Locations.create ({location : [latitutde : 123, longitude : 456} ...]})') – sgress454