2016-12-08 24 views
1

変数javascriptからjson形式を作成したいとします。javascriptのJSON形式への文字列

var code="1,description 1;2,description 2;3,description 3;4,description 4"; 

私はなってJSON形式に変更したい:

var result = [{"key":"1", "value","description 1"},{"key":"2", "value","description 2"},{"key":"3", "value","description 3"},{"key":"4", "value","description 4"} ] 

私はすでに分割を使用しますが、あまりにも難しく、使用2分割が( "" によって分割され、 ";")ので。それを修正するには?

ありがとうございます。

よろしく、 ボビー

+0

'{" key ":" 1 "、" value "、" description 1 "}'無効です – Mahi

+0

[これはJSONではありません](http://benalman.com/news/2010/03/theres- json/as-a-json /)のようなものです。 – Quentin

+0

@Quentin LoL。今これは新しいものです。私は、JSONオブジェクトがないことを知っています。 –

答えて

0

let data = []; 
 

 
let str = "1,description 1;2,description 2;3,description 3;4,description 4"; 
 

 
str.replace(/(.+?),(.+?)(;|$)/g, (_, key, value) => data.push({key, value})); 
 

 
console.log(data)

理由of(ab)は.replaceを使用しているため、グローバル.matchはグループをサポートしていません。

+2

男、あまりにも悪い、説明なし? –

+0

まだ、何をやっているのかわからない!正規表現は狂っているだけでなく、多くの人(私を含む)は、矢印と広がり関数の仕組みを知らない。 –

+0

RegExを使ってそのような小さなことをするのはとても面倒で過酷かもしれないと思いませんか? –

1

注意、それは次のようになります。

{"key":"1", "value": "description 1"} 

あなたが複数のループを使用する必要があります。プロセスは次のとおりです。

  1. 最終的なオブジェクトを定義します。
  2. ステップ1:;で分割します。
  3. ステップ2:各要素を,に分割します。
  4. すべてを最終オブジェクトにプッシュします。

スニペット

// Define final object: 
 
var finalArray = []; 
 
var code = "1,description 1;2,description 2;3,description 3;4,description 4"; 
 
// Step one: Split on ; 
 
code = code.split(";"); 
 
// Step two: Split on , 
 
for (var i = 0; i < code.length; i++) { 
 
    code[i] = code[i].split(","); 
 
    finalArray.push({ 
 
    "key": code[i][0], 
 
    "value": code[i][1] 
 
    }); 
 
} 
 
// Let's see the output: 
 
console.log(finalArray);

0

あなたは、キーと値のプロパティのための新しいオブジェクトを持つ分割さパーツをマップできます。

:JavaScriptでのものを解析するときは、通常、1つのデータ項目を表し正規表現を作成し、世界的にいくつかの構造を移入し、コレクションにそれをプッシュ機能で置き換える

var code="1,description 1;2,description 2;3,description 3;4,description 4", 
 
    result = code.split(';').map(function (a) { 
 
     var p = a.split(','); 
 
     return { key: p[0], value: p[1] }; 
 
    }); 
 

 
console.log(result);

関連する問題