convert a string to javascript object

javascript, jquery

Solution

With `true/false` boolean support:

var listItems = [];
var yourString = ":All;true:Yes;false:&nbsp";

var arr = yourString.split(";");
for (var i = 0; i < arr.length; i++) {
    var arr2 = arr[i].split(":");
    var value = arr2[0] || "";
    if (value == "true" || value == "false")
        value = (value === "true");
    listItems.push({
        itemValue : value,
        itemText : arr2[1] || ""
    });
}

console.log(listItems);

DEMO: http://jsfiddle.net/MZKFU/1/

UPDATE. For universal value parsing you can use `JSON.parse` method with `try/catch` block, as presented in Esailija's answer.

DEMO: http://jsfiddle.net/MZKFU/2/

Problem

I have the following string ``` ":All;true:Yes;false:&nbsp" ``` I want to convert is to an object like: ``` var listItems = [ {itemValue: "", itemText: "All"}, {itemValue: true, itemText: "Yes"}, {itemValue: false, itemText: "&nbsp"} ]; ``` Any elegant way to doing this appreciated.

Original source