2016-05-09 15 views
-3

配列値があります。この配列値をjson形式に変換する必要があります。例はbleowjqueryの配列値をjsonに変換する必要があります

サンプルアレイ

[Management [email protected][email protected] Issue [email protected][email protected]/IONSWeb/refDataManagement/searchDynamicScripts.do, Management [email protected][email protected] Event [email protected][email protected]/IONSWeb/orderManagement/eventBrowser.do, Management [email protected][email protected] Order [email protected][email protected]/IONSWeb/orderManagement/SearchOrdersWorkflow.do, [email protected][email protected] [email protected][email protected]/IONSWeb/userManagement/getMessageForBroadcast.do, [email protected][email protected][email protected][email protected]/IONSWeb/userManagement/auditManagement.do, [email protected][email protected][email protected][email protected]/IONSWeb/userManagement/lockSearch.do, [email protected][email protected][email protected][email protected]/IONSWeb/GroupManagement/begin.do, [email protected][email protected][email protected][email protected]/IONSWeb/userManagement/goToRolePage.do, [email protected][email protected] [email protected][email protected]/IONSWeb/ruleManagement/showRules.do, [email protected][email protected] [email protected][email protected]/IONSWeb/ManageTaskCode/begin.do, [email protected][email protected] [email protected][email protected]/IONSWeb/triggerOutEvent.jsp, [email protected][email protected][email protected][email protected]/IONSWeb/userManagement/begin.do, [email protected][email protected] Application [email protected][email protected]/IONSWeb/userManagement/refreshApplnCache.do] 

サンプルJSON

​​3210

を与えている誰もが、私はあなたがこのような何かをしたいと思います。この

+4

はJavaScriptの配列ではありません。 – nils

+0

あなたはこの文字列を持っていますが、これからJSONが必要ですか? – vaso123

+3

SOは**無料**サイト用のコードを取得していません。これまでに達成したことを共有してください。 – Rajesh

答えて

0

このような何か試してみてください:

フィドル:https://jsfiddle.net/ug85d7o7/6/

var jsonData = [], 
    item, name, 
    subItem, subUrl, 
    i, j, 
    a = [ 
     "Management [email protected][email protected] Issue [email protected][email protected]/IONSWeb/refDataManagement/searchDynamicScripts.do", 
     "Management [email protected][email protected] Event [email protected][email protected]/IONSWeb/orderManagement/eventBrowser.do", 
     "Management [email protected][email protected] Order [email protected][email protected]/IONSWeb/orderManagement/SearchOrdersWorkflow.do", 
     "A[email protected][email protected] [email protected][email protected]/IONSWeb/userManagement/getMessageForBroadcast.do", 
     "[email protected][email protected][email protected][email protected]/IONSWeb/userManagement/auditManagement.do", 
     "[email protected][email protected][email protected][email protected]/IONSWeb/userManagement/lockSearch.do", 
     "[email protected][email protected][email protected][email protected]/IONSWeb/GroupManagement/begin.do", 
     "[email protected][email protected][email protected][email protected]/IONSWeb/userManagement/goToRolePage.do", 
     "[email protected][email protected] [email protected][email protected]/IONSWeb/ruleManagement/showRules.do", 
     "[email protected][email protected] [email protected][email protected]/IONSWeb/ManageTaskCode/begin.do", 
     "[email protected][email protected] [email protected][email protected]/IONSWeb/triggerOutEvent.jsp", 
     "[email protected][email protected][email protected][email protected]/IONSWeb/userManagement/begin.do", 
     "[email protected][email protected] Application [email protected][email protected]/IONSWeb/userManagement/refreshApplnCache.do" 
    ]; 

for(i=0; i<a.length; i++) 
{ 
    item = a[i].split("[email protected][email protected]"); 
    name = item[0]; 
    subName = item[1]; 
    subUrl = item[2]; 

    subItem = null; 
    for (j=0; j<jsonData.length; j++) 
    { 
     if (jsonData[j].Name == name) 
     { 
      subItem = jsonData[j].sub; 
      break; 
     } 
    } 

    if (!subItem) 
    { 
     jsonData.push({"Name" : name, "sub" : [] }); 
     subItem = jsonData[jsonData.length-1].sub;   
    } 

    subItem.push({"Name" : subName, "url" : subUrl }); 
} 

alert(JSON.stringify(jsonData)); 

結果:

[ 
    { 
    "Name": "Management Portal", 
    "sub": [ 
     { 
     "Name": "Production Issue Handling", 
     "url": "/IONSWeb/refDataManagement/searchDynamicScripts.do" 
     }, 
     { 
     "Name": " Event Browser", 
     "url": "/IONSWeb/orderManagement/eventBrowser.do" 
     }, 
     { 
     "Name": " Order Workflow", 
     "url": "/IONSWeb/orderManagement/SearchOrdersWorkflow.do" 
     } 
    ] 
    }, 
    { 
    "Name": "ADMINISTRATION", 
    "sub": [ 
     { 
     "Name": "Admin Message", 
     "url": "/IONSWeb/userManagement/getMessageForBroadcast.do" 
     }, 
     { 
     "Name": "Audit", 
     "url": "/IONSWeb/userManagement/auditManagement.do" 
     }, 
     { 
     "Name": "Locks", 
     "url": "/IONSWeb/userManagement/lockSearch.do" 
     }, 
     { 
     "Name": "Queue", 
     "url": "/IONSWeb/GroupManagement/begin.do" 
     }, 
     { 
     "Name": "Role", 
     "url": "/IONSWeb/userManagement/goToRolePage.do" 
     }, 
     { 
     "Name": "Routing Rule", 
     "url": "/IONSWeb/ruleManagement/showRules.do" 
     }, 
     { 
     "Name": "Task Code", 
     "url": "/IONSWeb/ManageTaskCode/begin.do" 
     }, 
     { 
     "Name": "Trigger OutEvent", 
     "url": "/IONSWeb/triggerOutEvent.jsp" 
     }, 
     { 
     "Name": "User", 
     "url": "/IONSWeb/userManagement/begin.do" 
     }, 
     { 
     "Name": "Refresh Application Cache", 
     "url": "/IONSWeb/userManagement/refreshApplnCache.do" 
     } 
    ] 
    } 
] 
+0

助けてくれてありがとう、うまくいきます。皆さんありがとう –

1

に助けてください。文字列を分割し、最初の要素を取り出し、それが名前になり、すべての要素を反復処理します。すべての偶数の値は名前になり、すべての奇妙なURLになります。

奇数の場合は、それをサブ配列に追加します。それでおしまい。

var string = 'Management [email protected][email protected] Issue [email protected][email protected]/IONSWeb/refDataManagement/searchDynamicScripts.do, Management [email protected][email protected] Event [email protected][email protected]/IONSWeb/orderManagement/eventBrowser.do, Management [email protected][email protected] Order [email protected][email protected]/IONSWeb/orderManagement/SearchOrdersWorkflow.do, [email protected][email protected] [email protected][email protected]/IONSWeb/userManagement/getMessageForBroadcast.do, [email protected][email protected][email protected][email protected]/IONSWeb/userManagement/auditManagement.do, [email protected][email protected][email protected][email protected]/IONSWeb/userManagement/lockSearch.do, [email protected][email protected][email protected][email protected]/IONSWeb/GroupManagement/begin.do, [email protected][email protected][email protected][email protected]/IONSWeb/userManagement/goToRolePage.do, [email protected][email protected] [email protected][email protected]/IONSWeb/ruleManagement/showRules.do, [email protected][email protected] [email protected][email protected]/IONSWeb/ManageTaskCode/begin.do, [email protected][email protected] [email protected][email protected]/IONSWeb/triggerOutEvent.jsp, [email protected][email protected][email protected][email protected]/IONSWeb/userManagement/begin.do, [email protected][email protected] Application [email protected][email protected]/IONSWeb/userManagement/refreshApplnCache.do'; 
    var pieces = string.split('[email protected][email protected]'); 
    var first = pieces[0]; 
    //Get out the first one, that will be the key 
    pieces.shift(); 
    //Create the object 
    var object = { 
     'name': first, 
     'sub': [] 
    }; 

    //Iterate through elements 
    var i = 0; 
    var sub = []; 
    $.each(pieces, function (idx, piece) { 
     if (i % 2 == 0) { 
      sub['name'] = piece; 
     } else { 
      sub['url'] = piece; 
      object.sub.push(sub); 
     } 
     i++; 
    }); 
    console.log(object); 
関連する問題