将长字符串格式化为JSON

时间:2013-01-22 23:28:15

标签: javascript json

我从外部数据源获取此字符串。它看起来像这样:

var myString =  "Worker Management System :

    Your request has been submitted
    ________________________________________
    Your Account User Info: 
    Name : Doe, John, A 
    ID : JDOE123    
    Email :         
    Title : Worker
    BusinessUnit : BARN
    Department : PIGS   
    EmployeeID :            
    SupervisorName : Doe, Jane, B
    HireDate : 02/22/2002   
    Role : Feed Pigs;   
    ManagerEmail : JaneDoe@mail.com

    City : New York
    State : NY
    ZipCode : 12345
    Phone : --  
    "

我想把它解析为JSON(或者我可以使用的东西),这样我就可以调用myString.Name并让它返回Doe,John,A。

这可能吗?我不能修改我获取此字符串的方式,我只是尝试格式化它,以便我可以轻松地从中提取数据。

我看过道格拉斯·克罗克福德的JSON.parse,但如果我的字符串格式不正确,那对我没有好处。

1 个答案:

答案 0 :(得分:2)

String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g, '');};


function my_string_to_object(myString)
{
    var tmp = myString.split('Your Account User Info: ',2);
    var tmp = tmp[1].split("\n");    
    var obj = {};
    for(var k=0;k<tmp.length;k++) {    
        var line = tmp[k].split(' : ');
        if(typeof(line[1]) != 'undefined') {
            obj[ line[0].trim() ] = line[1].trim();
        }
    }
    return obj;
}