はES6

2016-05-26 7 views
-1

相場を使用してPOSTリクエストの文字列値を作成しますので、私はこのようになりますJSON文字列を作成しようとしています:はES6

{ 
    "username": "John", 
    "email": "[email protected]", 
    "address": "123 Fake St", 
    ... 
} 

は、これは私が持っているものです。

stringPost += fieldName + ": " + fieldValue +", "; 

そして私それはJSONです。しかし、それはそれらの必要な引用が必要です。私はこのようなリターンがあります。私はこのようにそれを必要とする

"username: John, email: [email protected], address: 123 Fake St, " 
// all in one wrapping quote: not what we need 

:私は引用符 "対"正しいを追加しようとしましたが、それはちょうど、\ユーザー名でレンダリング

{"username": "john", "email": "[email protected]"... // quotes with each value 

を...ヘルプ!

+2

'JSON.stringify'は文字列ではなくパラメータとしてオブジェクトをとります...あなたのフィールドに' var jsonObj = {} 'オブジェクトを作成してから' jsonObj [fieldName] = fieldValue'を実行してから'JSON.stringify(jsonObj);'? – TAGraves

+0

しかし、あなたのやり方をするには、単に 'stringPost + = '"' + fieldName + '":" + fieldValue +' "''を入力してください。 – TAGraves

+0

@TAGraves最初の提案を使いたいです。私は各フィールドをループして、この文字列に追加しています。したがって、各フィールドに対して 'stringPost + = '"' + fieldName + '":" + fieldValue +' "''を返すようにします。後でajax呼び出しに追加するstringPostを追加します。 – Modelesq

答えて

1

JSON.stringifyは、そのパラメータではなく、文字列としてオブジェクトを受け取りむしろ文字列の連結を使用するよりも、単にオブジェクトを作成し、FieldValuesプロパティにフィールド名と値にそのキーを設定します。

var jsonObj = {}; 
// now within some loop: 
jsonObj[fieldName] = fieldValue; 
// after the loop: 
var ajaxString = JSON.stringify(jsonObj);