개체 배열이 있는데, 각 배열에는 불확정 길이의 위치 및 링크 배열이 들어 있습니다. 루프를 사용하여 다중 레벨 JSON 객체를 만들려면 어떻게해야합니까?다단계 JSON 생성
최종 JSON 내가 데 문제가 제대로 개체를 형성하는 방법이다
item1: [
{ "location": [
{"latitude": value, "longitude": value, "stopNum": value, "fileName": value }
],
"links": [
{"latitude": value, "longitude": value, "stopNum": value, "fileName": value },
{"latitude": value, "longitude": value, "stopNum": value, "fileName": value },
{"latitude": value, "longitude": value, "stopNum": value, "fileName": value }
]
}
],
item2: [ //repeat of above ]
처럼 보일 것입니다. 배열에 포함 된 개체를
로 정의function Links(){
this.location = null;
this.links= [];
function getLocation(){
return location;
}
function setLocation(marker){
this.location = marker;
}
function getLinks(){
return links;
}
}
나의 현재 솔루션은
로$post= json_decode($_POST['json'])
PHP 문이 잘못된 배열을 반환이 꽤 작동하지 않습니다, 그러나
var json=[];
var linkData;
for (var i=0; i < tourList.length; i++){
var data = tourList[i];
//create new child array for insertion
var child=[];
//push location marker data
child.push({
latitude: data.location.position.$a,
longitude: data.location.position.ab,
stopNum: i,
filename: data.location.title
});
//add associated link data
for (var j=0; j<data.links.length; j++){
linkData = data.links[i];
child.push({
latitude: linkData.position.$a,
longitude: linkData.position.ab,
stopNum: i+j,
fileName: linkData.title
});
}
//push to json array
json.push(child);
}
//stringify the JSON and post results
var results= JSON.stringify(json);
입니다 여기서 $post.length
은 정의되지 않은 상수로 간주됩니다. 이 잘못된 서식을 인해 가정합니다.
위의 객체를 정의하면 서버에 전송할 올바른 JSON을 어떻게 만들 수 있습니까?
는stringify()
의 현재 결과는 I가 처리 배열을 반복
$post = json_decode($POST['json']);
for ($i=0; $i<$post.length; $i++) { }
$post.length
에 사용하고, 또한
[
{"latitude":43.682211,"longitude":-70.45070499999997,"stopNum":0,"filename":"../panos/photos/1-prefix_blended_fused.jpg"},
[
{"latitude":43.6822,"longitude":-70.45076899999998,"stopNum":0,"fileName":"../panos/photos/2-prefix_blended_fused.jpg"}
],
{"latitude":43.6822,"longitude":-70.45076899999998,"stopNum":1,"filename":"../panos/photos/2-prefix_blended_fused.jpg"},
[
{"latitude":43.68218,"longitude":-70.45088699999997,"stopNum":1,"fileName":"../panos/photos/4-prefix_blended_fused.jpg"},
{"latitude":43.68218,"longitude":-70.45088699999997,"stopNum":2,"fileName":"../panos/photos/4-prefix_blended_fused.jpg"}
]
]
이다.
POST 요청이
$.ajax({
type: "POST",
url: "../includes/phpscripts.php?action=postTour",
data: {"json":results},
beforeSend: function(x){
if (x && x.overrideMimeType){
x.overrideMimeType("application/json;charset=UTF-8");
}
},
success: function(data){
if (data == "success")
console.log("Tour update successful");
else
console.log("Tour update failed");
}
});
'$ post.length' 대신'count ($ post) '를 사용 했습니까? –
JSON 출력 샘플을 자바 스크립트에서 게시 할 수 있습니까? 또한, 이것을 PHP 스크립트에 어떻게 게시하고 있습니까? – Andre
또한,'count(); 대신'strlen ($ post);를 확인하고 싶습니다. – Andre