当前位置: 首页 > 面试题库 >

JSON.stringify在我的Json对象中添加额外的\和“”的问题

丁绪
2023-03-14
问题内容

嗨,我正在使用Javascript使用以下代码创建带有键和值的对象数组。

ValuesArray.push({ key: $(this).attr('someattribute'), value: $(this).val() });

结果,我得到了这样的对象数组:

key:29; value: 'Country'
Key:12; value: '4,3,5'

当我尝试将其字符串化并在帖子中发送该JSON时,在我不想要的地方,我使用\和“格式化了错误的JSON,因此当我尝试在C#的代码背后将JSON作为JObject销毁时,我遇到了麻烦。如何使用stringify创建一个干净的JSON

var jObject = JSON.stringify(ValuesArray);

我的JSON现在错了:

{
  "JObject": "[{\"key\":\"29\",\"value\":\"Country\"},  {\"key\":\"30\",\"value\":\"4,3,5\"}]"
}

我想要一个像这样的JSON对象

{
  "JObject": [{"key":"29","value":"Country"},{"key":"30","value":"4,3,5"}]
}

[]和字符周围没有引号\

有什么好办法解决。

谢谢

这是我如何将JSON发送到我的API的详细信息,这也是我将JSON发送到我的Web API的方法:

function PostAPIRequest(address) {

           var jObject = JSON.stringify(ValuesArray);

           var responseJson = null;
           $.ajax({
               url: address,
               type: 'POST',
               dataType: 'json',
               data: { JObject: jObject },
               success: function (data) {
                   responseJson = data
                   ProcessDataResponse(responseJson);
                   //TODO: REFRESH THE DATA GRID
               },
               error: function (xhr, ajaxOptions, thrownError) {
                   //TODO redirect to the error page and send error email there.
                   alert(xhr.status);
                   alert(thrownError);
               }
           })
       }

这就是我在API控制器中接收它的方式

...
  // POST api/datavalues/5


   public string Post(int id, JObject  value)
    {
        var temp = value;

...

问题答案:

您似乎在地图中放置了一个字符串作为值。您应该执行以下操作:

var objMap = {"JObject" : ValuesArray}; var json = JSON.stringify(objMap)

发生的事情是您正在对值数组进行双重json编码-请注意,“无效” JSON值实际上是JSON字符串,而不是所需的数组。

编辑 好像您将映射的JSON字符串粘贴到Array中,然后将其字符串化。这是一个jsfiddle,它可以帮助您获得所需的内容-http:
//jsfiddle.net/4G5nF/

在您的帖子请求中,尝试此操作

var jObject = {"JObject" : ValuesArray};
$.ajax({   url: address,
           type: 'POST',
           dataType: 'json',
           data: jObject,
           success: function (data)  { .. }});

注意data属性中的更改。这是一个自动为您JSON化的值。



 类似资料:
  • 在序列化为JSON时,我需要向对象添加新属性。该属性的值是在运行时计算的,在对象中不存在。同样,同一个对象也可以用于创建具有不同集合ot字段的不同JSON(有点像是有一个带有子类的基类,但我不想创建一个只用于JSON生成的基类)。 最好的方法是什么,它不涉及创建自定义序列化器类,它将处理整个对象字段集的序列化?或者可能继承一些“基本”序列化器,然后简单地获取它的输出并以某种方式添加新字段? 我了解

  • 我有一个从api获取的json数据。假设表是(下表只是一个示例) 现在,我从api获取名称和年龄内容,并将其显示为表格式(我使用React js)。现在,我想使名称的内容(如a和B)可点击。当我单击A时,它应该将我链接到另一个api url(这里的问题是每个名称对象的api url都不同),因此 现在,如何将我的名称对象内容(A,B)链接到api(url),并使其获取数据并显示为另一个页面上的表。

  • 我需要在我显示的地图上的标记周围添加额外的填充。 这是到目前为止的代码,但顶部和底部或西部和东部标记在屏幕的边缘。

  • 问题内容: 我需要使用ProcessBuilder构建以下命令: 我尝试使用以下代码: 但是,这会将以下内容传递给系统(已使用Sysinternals Process Monitor进行了验证) 注意前面的引号和后面的两个引号。我需要除去那些多余的引号,因为它们会使调用失败。有谁知道如何做到这一点? 问题答案: 据我了解,由于ProcessBuilder不知道如何将参数传递给命令,因此需要将参数分

  • 我正在用Python工具检索Twitter数据,并将这些数据以JSON格式转储到我的磁盘上。我注意到用双引号括起来的tweet的整个数据字符串的意外转义。此外,实际JSON格式的所有双引号都用反斜杠转义。 在稍后的处理步骤中读取JSON文件时,意外的转义会导致问题。

  • 问题内容: 我曾尝试在其文档的Mozilla JSON字符串化页面上以及在SO和Google上查看,但没有找到解释。我已经使用JSOn字符串化很多次了,但是从未遇到过这个结果 我有一个JSON对象数组 附加到我的并且为了将它们作为一个参数使用了JSON.stringify()方法,我得到了以下信息: 我只是想知道$$ hashkey到底是什么,因为我期望从stringify方法获得与以下类似的东西