2016-10-14 17 views
5

Tôi đã sau JSON chuỗi:làm thế nào để chuyển đổi giá trị json theo dấu phẩy chuỗi tách bằng javascript

{"name":"Marine Lines","location_id":3},{"name":"Ghatkopar","location_id":2}

Tôi muốn location_id như

3,2

+2

Là JSON chuỗi khép kín như một mảng? tức là được bao quanh bởi '[]'? –

+0

cố gắng sử dụng thư viện cho người phối ngẫu này, http://www.json.org/js.html –

+2

@Mitul - Tôi đã khôi phục bản chỉnh sửa của bạn vì không nghe lại từ OP Tôi không nghĩ rằng chúng tôi có thể giả định chuỗi đầu vào của họ khác với những gì họ đã nói. (Mặc dù rõ ràng là nó không phải là JSON hợp lệ.) – nnnnnn

Trả lời

12

đơn giản:

var data = [{"name":"Marine Lines","location_id":3},{"name":"Ghatkopar","location_id":2}] 
 
var result = data.map(function(val) { 
 
    return val.location_id; 
 
}).join(','); 
 

 
console.log(result)

Tôi giả sử bạn muốn có một chuỗi, vì thế mà .join(','), nếu bạn muốn một mảng chỉ cần loại bỏ phần đó.

+1

FYI, '.join' theo mặc định tham gia các giá trị bằng dấu phẩy. – Rajesh

+2

@Rajesh Có, nhưng tôi đã thêm nó để làm rõ. – Chrillewoodz

0

thử này

var obj = [{"name":"Marine Lines","location_id":3},{"name":"Ghatkopar","location_id":2}]; 
 
    var output = obj.map(function(item){ 
 
     return item.location_id; 
 
    }); 
 
    console.log(output.join(","))

0

var arr = [{"name":"Marine Lines","location_id":3},{"name":"Ghatkopar","location_id":2}]; 
 

 
var location_array = []; 
 
for(var i = 0; i < arr.length; i++) 
 
{ 
 
    location_array.push(arr[i].location_id); 
 
}//for 
 

 
var location_string = location_array.join(","); 
 
console.log(location_string);

Lưu ý: Bạn có thể cần phải sử dụng JSON.parse() nếu arr là ở định dạng chuỗi ban đầu.

2

Bạn có thể thêm dấu ngoặc vào chuỗi, phân tích chuỗi (JSON.parse) và bản đồ (Array#map) thuộc tính và kết nối (Array#join) kết quả.

var string = '{"name":"Marine Lines","location_id":3},{"name":"Ghatkopar","location_id":2}', 
 
    array = JSON.parse('[' + string + ']'), 
 
    result = array.map(function (a) { return a.location_id; }).join(); 
 

 
console.log(result);

+1

OP đã chỉnh sửa câu hỏi để thêm dấu ngoặc vuông kèm theo. –

+1

@MohitBhardwaj - Bản chỉnh sửa đó không phải do OP, và OP chưa trả lời một câu hỏi về nó, vì vậy bây giờ tôi đã cuộn lại bản chỉnh sửa đó. – nnnnnn

1

obj=[{"name":"Marine Lines","location_id":3}, {"name":"Ghatkopar","location_id":2}] 
 
var res = []; 
 
for (var x in obj) 
 
if (obj.hasOwnProperty(x)) 
 
    res.push(obj[x].location_id); 
 
console.log(res.join(","));

0

var json = [{"name":"Marine Lines","location_id":3},{"name":"Ghatkopar","location_id":2}]; 
 

 
var locationIds = []; 
 
for(var object in json){ 
 
    locationIds.push(json[object].location_id); 
 
} 
 

 
console.log(locationIds.join(","));

0

Bạn cũng có thể nhìn vào.210 và tạo ra một chuỗi bằng tay

var d = [{"name":"Marine Lines","location_id":3},{"name":"Ghatkopar","location_id":2}] 
 

 
var location_id_str = d.reduce(function(p, c) { 
 
    return p ? p + ',' + c.location_id : c.location_id 
 
},''); 
 

 
console.log(location_id_str)

+1

Điều này không hoạt động nếu có nhiều hơn hai đối tượng trong mảng. – nnnnnn

+0

@nnnnnn Tôi đã cập nhật câu trả lời của mình. Cảm ơn đã chỉ ra điều đó – Rajesh

0

Bạn có thể sử dụng for..of loop

var arr = [{ 
 
    "name": "Marine Lines", 
 
    "location_id": 3 
 
}, { 
 
    "name": "Ghatkopar", 
 
    "location_id": 2 
 
}]; 
 

 
var res = []; 
 

 
for ({location_id} of arr) {res.push(location_id)}; 
 

 
console.log(res);

Các vấn đề liên quan