2017-01-05 1 views
2

여러 개의 json 문자열을 단일 문자열로 변환하고 싶습니다.여러 개의 json 문자열을 하나의 문자열로 변환

이것은 내 여러 json 문자열 어떻게 단일 문자열로 변환 할 수 있습니다.이 문자열을 아약스의 응답으로 받고 있어요. 이 같은

[ 
    { 
     "name1":"pizaa", 
     "count1":8 
    }, 
    { 
     "name2":"sandvich", 
     "count2":8 
    }, 
    { 
     "name3":"Burger", 
     "count3":8 
    }, 
    { 
     "name4":"TEST category", 
     "count4":8 
    }, 
    { 
     "name5":"TEST category", 
     "count5":8 
    }, 
    { 
     "name6":"TEST category", 
     "count6":8 
    }, 
    { 
     "name7":"final test", 
     "count7":8 
    }, 
    { 
     "name8":"final final test", 
     "count8":8 
    } 
] 

출력 :

[ 
    { 
     "name1":"pizaa", 
     "count1":8, 
     "name2":"sandvich", 
     "count2":8 
    } 
    ] 
+0

하지 명확

JSON.stringify을 사용했습니다. 모든 객체의 모든 필드를 단일 객체로 결합하고 싶습니까? 왜 처음 두 객체 만 고려하고 있습니까? – pedrorijo91

+0

모든 필드에 가입하고 싶습니다. 나는이 출력을 얻고 싶다는 출력만을 보여 주었다. – Cool

+1

@Cool -'count'는 객체의 속성이다. 만약 당신이 하나의 객체를 병합하려고한다면'count' 속성이 오버라이드 될 것이고 따라서 모든 객체에 대해서'count' 값이 같지 않으면 원하는 출력을 얻을 수 없습니다. – nikhil

답변

1

보라. 여기에 내가

var json = [{ 
 
    "name1": "pizaa", 
 
    "count": 8 
 
}, { 
 
    "name2": "sandvich", 
 
    "count": 8 
 
}, { 
 
    "name3": "Burger", 
 
    "count": 8 
 
}, { 
 
    "name4": "TEST category", 
 
    "count": 8 
 
}, { 
 
    "name5": "TEST category", 
 
    "count": 8 
 
}, { 
 
    "name6": "TEST category", 
 
    "count": 8 
 
}, { 
 
    "name7": "final test", 
 
    "count": 8 
 
}, { 
 
    "name8": "final final test", 
 
    "count": 8 
 
}] 
 

 
var finalString = ''; 
 
finalString = JSON.stringify(json); 
 
finalString = finalString.replace(/},{/g, ","); 
 
alert(finalString);

+0

나중에 참조 할 수 있도록 외부 소스에 대한 링크가있을 수 있으며 죽을 수도 있으므로 응답 텍스트 자체에 코드를 포함하십시오. – Jhecht

+0

오케이, 편집 및 제안 주셔서 감사합니다 :) @ Jhecht –

0

나는 귀하의 질문에 대한 해결책을 게시했습니다.

var data = [ 
 
    { 
 
     "name1":"pizaa", 
 
     "count1":8 
 
    }, 
 
    { 
 
     "name2":"sandvich", 
 
     "count2":8 
 
    }, 
 
    { 
 
     "name3":"Burger", 
 
     "count3":8 
 
    }, 
 
    { 
 
     "name4":"TEST category", 
 
     "count4":8 
 
    }, 
 
    { 
 
     "name5":"TEST category", 
 
     "count5":8 
 
    }, 
 
    { 
 
     "name6":"TEST category", 
 
     "count6":8 
 
    }, 
 
    { 
 
     "name7":"final test", 
 
     "count7":8 
 
    }, 
 
    { 
 
     "name8":"final final test", 
 
     "count8":8 
 
    } 
 
]; 
 

 
var result = []; 
 
var reduced = {}; 
 
data.map(function(a) { 
 
    for(var p in a) { 
 
    reduced[p] = a[p]; 
 
    } 
 
}); 
 
result[0] = reduced; 
 
console.log(result);

+0

감사합니다 그것은 작동합니다. 고마워요. – Cool

+0

코드를 약간 업데이트했습니다. 다른 모습을보고 싶을 수도 있습니다. – cringe

0

이 시도 : 나는 jsfiddle에 솔루션을 만든

var jsonData = [{"name1":"pizaa","count1":8},{"name2":"sandvich","count2":8},{"name3":"Burger","count3":8},{"name4":"TEST category","count4":8},{"name5":"TEST category","count5":8},{"name6":"TEST category","count6":8},{"name7":"final test","count7":8},{"name8":"final final test","count8":8}]; 
var modJson = {}; 
$.each(jsonData, function(index, val) { 
    modJson['name'+(index+1)] = val['name'+(index+1)]; 
    modJson['count'+(index+1)] = val['count'+(index+1)]; 
}); 
console.log(modJson); 
관련 문제