2012-06-15 4 views
3

Я не могу преобразовать объект JS для точной строки, мой код:Javascript преобразовать строку объекта в строку

jsonObj['payment_value']=100.10; 
jsonObj['payment_date']="2012-06-15"; 
jsonObjStr = JSON.stringify(jsonObj); 
alert(jsonObjStr); 
$.post("test", jsonObjStr.toString(), function(output){ 
    alert(output); 
}); 

первое предупреждение показывает:

{ "PAYMENT_DATE": "2012-06-15" "payment_value": 100,1}

и функционального тестирования (я использую CodeIgniter рамки) он должен напечатать "PAYMENT_DATE" и "payment_value", такой код:

echo $this->input->post("payment_value"); 
echo $this->input->post("payment_date"); 

, который в "сброшен и ясном" РНР:

echo $_POST["payment_value"]; 
echo $_POST["payment_date"]; 

но второй оповещения отображает ясную строку.

Если я ставлю

{ "PAYMENT_DATE": "2012-06-15", "payment_value": 100,1}

вместо jsonObjStr.toString() он работает отлично

Кто-нибудь знает, как его исправить БЕЗ использования json_decode? Мне нужно выложил значение в этом формате, а не в другом массиве

Так что мне нужно преобразовать jsonObjStr точного натянуть (что-то обратно пропорционально функционировать Eval())

Спасибо в советах

+1

я не уверен, я понимаю, что вы пытаетесь сделать. Каков ваш намеченный результат? – hayavuk

ответ

4

Согласно $.post документы, второй аргумент должен быть карты или строки запроса:

карта пример:

{ 
    "payment_date":"2012-06-15", 
    "payment_value":100.1 
} 

Строка запроса Пример:

'payment_date=2012-06-15&payment_value=100.1​​​' 

При использовании JSON.stringify, то вы получите:

'{"payment_date":"2012-06-15","payment_value":100.1}' 

который является недействительным query string. Таким образом, решение: ничего не stringify, передать сам объект, как 2-й аргумент:

jsonObj['payment_value']=100.10; 
jsonObj['payment_date']="2012-06-15"; 
$.post("test", jsonObj, function(output){ 
    alert(output); 
}); 
+0

Я не могу поверить, что это так просто ... Очевидно, что все в порядке! Спасибо! – Markoj

 Смежные вопросы

  • Нет связанных вопросов^_^