未终止的字符串在Json中传递

时间:2016-08-25 05:05:13

标签: jquery json asp.net-mvc-4

我在序列化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 '},]

2 个答案:

答案 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()

我在上面的代码中添加了一个逗号后面的逗号。