2017-05-10 4 views
0

にJSON文字列を変更するには: "127,30" }はどのように私はこのようなJSONを持ってロング/ダブル/ナンバー

私はこのように、ダブル/ナンバーに "値" フィールドを変更したいと思います:

{ "id_document": "12345679"、 "名前": "John SMmith"、 "value":127.30 }

問題は、JSONデータがたくさんあることです。たとえば、70k行です。だから私はこれを自動化する方法が必要です。 誰かにイデアがありますか?

どの言語でも解決できます。私はNodeJSを試していました。

助けを借りてくれてありがとう。

EDIT:

{ "DESPESA":[{ "sgPartido": "DEM"、 "numMes":1、 "txtCNPJCPF":

私のJSONファイルのようなものである "03625917000170"、 "vlrGlosa": "0"、 "txNomeParlamentar": "ABEL MESQUITA JR"、 "sgUF": "RR"、 "nuCarteiraParlamentar":1、 "vlrDocumento": "4007,06"、 "nuDeputadoId":3074、 55、 "vlrRestituicao": "0"、 "numParcela":0、 "txtDescricao":null、 "datEmissao":null、 "datEmissao":null、 "codEngine":3、 "txtDescricaoEspecificacao" "txtNumero": "4339"、 "numEspecificacaoSubCota":1、 "txtFornecedor": "BB PETROLEO LTDA"、 "numLote":1354058、 "indTipoDocumento":0、 "idecadaストローク ":178957、" numAno ":2017、" txtTrecho ":null、" numRessarcimento ":5711、" vlrLiquido ":" 4007,06 "、" ideDocumento ":6196889、" nuLegislatura ":2015}、... 70kこれと終わりのようなオブジェクト}

EDITとライン:queのため

fs = require('fs'); 
var in_file = 'in.json'; 
var out_file = 'out.json' 
fs.readFile(in_file, 'utf8', function(err, data) { 
data = JSON.parse(data); 

for(let i in data.DESPESA) { 
    let despesa = data.DESPESA[i]; 
    let valor = despesa.vlrDocumento.replace(',', '.'); 
    data.DESPESA[i].vlrDocumento = parseFloat(valor); 
} 

fs.writeFile(out_file, JSON.stringify(data), function(err) { 
    if (err) throw err; 
     console.log('The file has been saved!'); 
}); 
}); 

おかげヘルプは、答えが違いを作った:私は男をしたが、結果はということでした。

答えて

0

あなたのデータはオブジェクトの配列である、あなたは、あなたがあなたの オブジェクトを解析するための単一の関数を記述し、例として、数に文字列からデータを変換することができますArray.proptoy.mapを見てみる必要があると仮定:

const myData = JSON.parse(<data from file>); 
const parsedData = mydata.map(function(val) { 
    val.value = parseFloat("554,20".replace(",", ".")); 
    return val; 
}); 

//go back to JSON: 
JSON.stringify(parsedData); 

(parseFloatは計算は、このようなthis answer

+0

何か=は( 'fsの' 必要 FS)から来た;? するvarメートル= 'out.json'; fs.readFile(M 'UTF8'、関数(エラー、データ){ \t data = JSON.parse(data); \t Object.keys(データ).forEach(関数(vlrDocumento){ \t \t vlrDocumento.value = parseFloatは(vlrDocumento.replace( " ""。")) \t \t JSON.stringify(vlrDocumento.value) \t}) }); – Yago

+0

ここにObject.keys()が何をしようとしているのか分かりません。その中に1つの巨大なJSONオブジェクトを持つ単一のファイルがあれば、その構造は何か不思議です。それがオブジェクトの配列であれば、object.keysではなく、forEachまたはmapを使用します。 – JoeTortuga

+0

JSONの1つのオブジェクトで質問を編集しました。 "vlrDocumento": "4007,06"の項目を "vlrDocumento":4007.06に変更しようとしています。同じ "vlrDocumento"キーの値がそれぞれ異なるもの。 – Yago

関連する問題