我在序列化json时遇到错误。 传入未终止的字符串。 这是我的代码。
function updatemetaData(docid) {
$(document).ready(function(){
var list = new Array();
var strOrderArr = '';
$('input[id=varchar]').each(function (i, item) {
list.push($(item).val());
strOrderArr = strOrderArr + "{";
strOrderArr = strOrderArr + "'upld_id':" + "'" + docid + "'";
strOrderArr = strOrderArr + "'upld_contentvalue':" + "'" + $(item).val() + "'";
strOrderArr = strOrderArr + "},";
});
var jsonOfLog = JSON.stringify(strOrderArr);
$.ajax({
type: 'POST',
data: "jsonOfLog=" + jsonOfLog,
dataType: 'json',
url: '/documentVerification/updatedocDetails',
success: function (data) {
fun_toastr_notify('success', 'Document has been Updated');
$("#dialog").dialog("close");
}
, error: function (error) {
fun_toastr_notify('error', data, 'Error');
}
});
});
}
listInuploadContent = (CommonUtility.JsonDeserialize<List<tr_upld_content>>("[" + jsonOfLog.Substring(0, jsonOfLog.Length - 1) + "]")) as List<tr_upld_content>;
public static T JsonDeserialize<T>(string json)
{
try
{
var serializer = new JavaScriptSerializer();
return serializer.Deserialize<T>(json);
}
catch (Exception ex)
{
throw ex;
}
}
以下是输出错误。
传入未终止的字符串。(146):[“{'upld_id':'2185''upld_contentvalue':'123'},{'upld_id':'2185''upld_contentvalue':'31/08/2016'},{ 'upld_id': '2185''upld_contentvalue':'Karkala '},]
答案 0 :(得分:1)
尝试使用以下代码:
$('input[id=varchar]').each(function (i, item) {
list.push($(item).val());
strOrderArr = strOrderArr + "{";
strOrderArr = strOrderArr + "'upld_id':" + "'" + docid + "'";
strOrderArr = strOrderArr + "'upld_contentvalue':" + "'" + $(item).val() + "'";
strOrderArr = strOrderArr + "},";
});
strOrderArr = strOrderArr.replace(/\//g, "\\/");
var jsonOfLog = JSON.stringify(strOrderArr);
我在,
值之后添加了docid
来分隔两个键值对。
答案 1 :(得分:0)
使用JavaScript序列化程序序列化为JSON。您在手动序列化中缺少逗号。
fitBounds()
我在上面的代码中添加了一个逗号后面的逗号。