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

在javascript中创建json对象并将其发送到servlet

董翰池
2023-03-14
问题内容

我正在创建json对象以保存数据,然后将其发送到servlet。但是,当我尝试检索该对象并将其内容显示在Java Servlet中时,它抛出一个错误,提示“
JSONObject文本必须在1 [字符2行1]处以’{‘开头。我不知道如何在Java中显示从javascript发送的json对象。这是我在做什么:

JavaScript代码:

var arrayOfObjects = [];
arrayOfObjects.push({"divid":imageinc,"xCordinates":Xcord,"yCordinates":Ycord,"Height":canvasWidth,"Width":canvasHeight, "PageNo":pageNum});

显示Javascript内容:

for (var i = 0; i < arrayOfObjects.length; i++) {
var object = arrayOfObjects[i];
for (var property in object) {
    alert(property + '=' + object[property]);
}
}

使用jQuery Ajax将对象发送到servlet:

    var param = 'objarray=' +arrayOfObjects;

    $.ajax({
      url: '/ProjectName/finalXmlServGen',
      type: 'POST', 
      dataType: 'json',  
      data: param,
      success: function(result) {
          alert('SUCCESS');
      }
    });

调用ajax后,我会收到成功消息。 现在,我在servlet中收到以下对象:

String objarray = request.getParameter("objarray").toString();
try {
        JSONObject jsonObj = new JSONObject(objarray);

        String xmlString= XML.toString(jsonObj);
        System.out.println("JSON to XML: " + xmlString);
    } catch (JSONException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

我在控制台中看到的消息是错误“ JSONObject文本必须在1 [字符2行1]处以’{‘开头”。我如何解析对象并形成xml或字符串


问题答案:

在Java方面,您需要首先将JSON数组转换为Java POJO bean,以便能够(轻松地)对其进行操作。有多种API可以做到这一点;Google
GSON和Jackson是两种可能性。

杰克逊在泽西内部使用,JAX-RS API的参考实现;根据我的经验,它效果很好。



 类似资料:
  • 问题内容: 我正在尝试将JSON对象从Javascript / Jquery发送到PHP,并且在控制台中收到错误消息msg。我究竟做错了什么。我是JS和PHP的新手。 jQuery文件: PHP文件 问题答案: 菲尔(Phil)的出色回答,但自从OP标题说 从javascript( 不是jQuery )发送json对象到php 这是使用(原始)javascript的方法,以防万一有人寻找此方法:

  • 我有两个json对象,请不要是字符串,我想将它们组合成一个json对象,如下所示。 两个对象: 预期结果: 有没有一种优雅的方法可以做到这一点?我的意思是,不提取每支笔和每本书的值,然后使用以下方法将它们重新插入包 我正在使用org。科德豪斯。抛弃json。JSONObject,如果需要该信息。

  • 几个小时以来,我一直试图将所有坐标数组放入一个对象中,但似乎无法找到如何使用angular查找和推入坐标数组。 我以为我可以用angular.for来完成这个,但是我不能让它工作。我试图找到答案和教程,但似乎没有什么适合我的需要在这里。我可能没有完全理解。 以下是我的JSON: 这是我的最新尝试: 任何关于如何实现这一点的教程参考或示例(甚至更好),都将不胜感激! 我正在寻找以下结果:

  • 我想创建一个对象动态,例如在JavaFX中的一个圆。我的代码会像这样。 我现在的问题是如何增加每个圆的独特性。例如,如果我要添加每个圆的不同颜色和大小。我该如何实现呢?请帮忙。

  • 问题内容: 我想创建.zip文件,其中包含我从后端收到的压缩文件,然后将此文件发送给用户。两天来我一直在寻找答案,找不到合适的解决方案,也许你可​​以帮我:) 现在,代码是这样的:(我知道我不应该在spring控制器中做所有的事情,但是不要在意,它只是出于测试目的,找到使其工作的方法) 但是问题是,当我输入URL:localhost:8080 / zip时,使用代码得到的文件是:test.zip.

  • 问题内容: 这可能吗? 可能带有:标头带有:?: 否则我可以使用: 然后将JSON对象发送到参数中,但如果可能的话,以这种方式发送它会很酷。 问题答案: 使用jQuery: 没有jQuery: