JSON数据处理

1.添加json依赖

springmvc 默认使用jackson作为json类库,不需要修改applicationContext-servlet.xml任何配置,只需引入以下类库springmvc就可以处理json数据:

<!--spring-json依赖-->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.0</version>
</dependency>

2.注解

  • @RequestBody:作用是接收前端ajax传递给后端的json字符串,并将json格式的数据转为java对象

  • @ResponseBody:作用是将java对象转为json格式的数据传递给前台ajax

3.JSON、集合、对象三种数据处理

3.1.JSON数据处理

1)pojo

package com.by.pojo;



import java.io.Serializable;
import java.util.Date;

public class Account implements Serializable {
    private Integer id;
    private String name;
    private Float money;
    private Address address;
    private Date date;


    @Override
    public String toString() {
        return "Account{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", money=" + money +
                ", address=" + address +
                ", date=" + date +
                '}';
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Float getMoney() {
        return money;
    }

    public void setMoney(Float money) {
        this.money = money;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }
}
package com.by.pojo;

import java.io.Serializable;

public class Address implements Serializable {
    private String provinceName;
    private String cityName;
    


    @Override
    public String toString() {
        return "Address{" +
                "provinceName='" + provinceName + '\'' +
                ", cityName='" + cityName + '\'' +
                '}';
    }

    public String getProvinceName() {
        return provinceName;
    }

    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }
}

2)编写controller层

@Controller
@RequestMapping("/Account")
public class AccountController {
@RequestMapping("/controller16")
    @ResponseBody //pojo---》转JSON
    public Account controller16(@RequestBody Account account){//@RequestBody json--》转pojo
        System.out.println(account);
        return account;
    }
}

3)在index.jsp里面定义ajax请求

添加按钮

 <input type="button" value="测试ajax请求json和响应json" id="testJson"/>

引入js库文件

<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>

编写ajax代码

  <script type="text/javascript">
    $(function(){
      $("#testJson").click(function(){
        $.ajax({
          type:"post",
          url:"/Account/controller16",
          contentType:"application/json;charset=UTF-8",
          data:'{"id":1,"name":"张二狗","money":999.0}',
          success:function(data) {
                     }
        })
      });
    })
  </script>

结果:

3.2集合数据处理 

1)编写controller层

@RequestMapping("/controller17")
    @ResponseBody
    public Map controller17(@RequestBody Account account){
       Map<String, Object> map = new HashMap<>();
        try {
            //int a=6/0;
            map.put("status",200);
            map.put("msg",account);
        } catch (Exception e) {
            e.printStackTrace();
            map.put("status",500);
            map.put("msg","未知异常!!!!");
        }
        return map;
    }

2)编写ajax代码

<script type="text/javascript">
    $(function(){
      $("#testJson").click(function(){
        $.ajax({
          type:"post",
          url:"/Account/controller17",
          contentType:"application/json;charset=UTF-8",
          data:'{"id":1,"name":"张二狗","money":999.0}',
          success:function(data) {
            if (data.status == 200) {
              alert(data.msg.name);
              alert(data.msg.money);
            }else {
              alert(data.msg);
            }
          }
        })
      });
    })
  </script>

测试:

3.3对象数据处理

1)pojo

package com.by.pojo;

public class Result {
    private Integer status;
    private Object msg;

    @Override
    public String toString() {
        return "Result{" +
                "status=" + status +
                ", msg=" + msg +
                '}';
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Object getMsg() {
        return msg;
    }

    public void setMsg(Object msg) {
        this.msg = msg;
    }
}

2)编写controller层

 @RequestMapping("/controller18")
    @ResponseBody
    public Result controller18(@RequestBody Account account){
        Result result = new Result();
        try {
            //int a=6/0;
            result.setStatus(200);
            result.setMsg(account);
        } catch (Exception e) {
            e.printStackTrace();
            result.setStatus(500);
            result.setMsg("未知异常!!!!!");
        }
        return result;
    }

3)编写ajax代码

 <script type="text/javascript">
    $(function(){
      $("#testJson").click(function(){
        $.ajax({
          type:"post",
          url:"/Account/controller18",
          contentType:"application/json;charset=UTF-8",
          data:'{"id":1,"name":"张二狗","money":999.0}',
          success:function(data) {
            if (data.status == 200) {
              alert(data.msg.name);
              alert(data.msg.money);
            }else {
              alert(data.msg);
            }
          }
        })
      });
    })
  </script>

结果:

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PyTorch是一个流行的深度学习框架,它提供了许多工具和功能来处理各种类型的数据集。其中一种常见的数据格式是JSON(JavaScript Object Notation)。 JSON是一种轻量级的数据交换格式,它使用类似于字典的结构来表示数据。在PyTorch中,可以使用内置的json模块来读取和处理JSON数据集。 首先,我们需要使用Python的json库将JSON数据加载到内存中。可以使用`json.load()`函数来读取JSON文件,返回一个包含JSON数据的Python字典。例如,如果我们的JSON文件名为"dataset.json",可以使用以下代码加载数据集: ``` import json with open('dataset.json', 'r') as f: dataset = json.load(f) ``` 然后,我们可以根据数据集的结构使用PyTorch的功能来进一步处理数据。例如,如果我们有一个包含图像路径和标签的JSON数据集,可以使用PyTorch的`torchvision`模块来加载图像和标签,并进行预处理和转换: ``` from torchvision import transforms from PIL import Image transform = transforms.Compose([ transforms.Resize((256, 256)), transforms.ToTensor(), ]) for data in dataset: image_path = data['image_path'] label = data['label'] image = Image.open(image_path) image = transform(image) # 进一步处理图像和标签 ``` 最后,我们可以使用PyTorch的DataLoader来创建一个可迭代的数据加载器,并在训练模型时使用该数据加载器。这个数据加载器可以提供按批次加载数据、数据随机排序等功能,从而方便地处理大规模的JSON数据集。 总而言之,PyTorch提供了丰富的功能来处理JSON数据集。我们可以使用json库加载和解析JSON数据,并使用PyTorch的功能来进一步处理和转换数据,以进行深度学习模型的训练和评估。 ### 回答2: PyTorch是一种流行的深度学习框架,它提供了各种各样的功能和工具来帮助我们构建和训练机器学习模型。而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于在不同操作系统和编程语言之间传输和存储数据。在PyTorch中,我们可以使用JSON数据集来加载和预处理我们的训练和测试数据。 PyTorch提供了一个名为torchvision的库,其中包含了一些内置的数据集,例如MNIST、CIFAR-10等。然而,如果我们想使用自定义的JSON数据集,我们需要首先将数据转换为PyTorch所需的格式。 为了加载JSON数据集,我们可以使用PyTorch的Dataset类和DataLoader类。Dataset类是一个抽象类,我们需要继承它并实现__len__和__getitem__两个方法来定义我们自己的数据集类。在__getitem__方法中,我们可以使用Python的json库来读取和解析JSON文件,并将数据进行预处理。 在数据预处理阶段,我们可以使用PyTorch中的transforms模块来进行常见的图像处理操作,例如裁剪、缩放、旋转等。这些处理操作可以应用于加载的JSON数据,以使其适用于我们的模型。另外,我们还可以通过实现自定义的数据转换函数来进行更复杂的数据处理操作。 一旦我们完成了数据集的加载和预处理,我们可以使用DataLoader类来生成一个可迭代的数据加载器。该加载器将自动处理数据的批处理、随机排序和多线程加载等细节,方便我们在训练过程中高效地加载和处理数据。 总而言之,PyTorch提供了丰富的功能和工具来处理JSON数据集。我们可以使用Dataset和DataLoader类来加载和预处理数据,并利用transforms模块和自定义函数来进行数据转换。通过这些操作,我们可以轻松地准备我们的数据,并将其用于PyTorch模型的训练和评估过程中。 ### 回答3: PyTorch是一个开源的深度学习框架,用于构建和训练神经网络模型。在PyTorch中,我们可以使用JSON数据集来加载和处理数据。 JSON(JavaScript Object Notation)是一种常用的轻量级数据交换格式,它以易于阅读和编写的方式表示结构化数据。JSON数据集通常由一个JSON文件组成,其中包含一个或多个样本的信息。 首先,我们需要使用Python的json库来读取和解析JSON文件。通过使用`json.load()`方法,我们可以将JSON文件中的内容加载为Python字典类型的对象。然后,我们可以使用Python的字典操作来访问和处理数据。 在PyTorch中,我们通常将数据加载到自定义的Dataset类中。我们可以创建一个继承自torch.utils.data.Dataset的子类,并实现其中的`__getitem__()`和`__len__()`方法来处理数据。在`__getitem__()`方法中,我们可以通过索引来访问和提取具体的样本数据,并对其进行预处理。 一种常见的做法是将JSON文件中的每个样本表示为一个字典,在字典中存储不同的特征和对应的标签。我们可以在`__getitem__()`方法中使用`json_data[索引]`来访问特定索引处的样本,然后从字典中提取所需的数据。 另一种常见的做法是将JSON文件中的每个样本表示为一个字符串对象,其中包含所有样本的信息。我们可以使用`json.loads()`方法将字符串转换为JSON对象,并进一步提取所需的特征和标签信息。 最后,我们可以使用PyTorch的DataLoader类来批量加载和处理JSON数据集。通过设置参数如batch_size、shuffle等,我们可以灵活地配置数据加载和处理的方式。 总的来说,PyTorch提供了灵活而强大的工具,可以处理和加载JSON数据集。我们可以根据具体的需求,使用不同的方法来读取JSON文件并提取所需的数据,然后在自定义的Dataset类中进行进一步的处理和批量加载,以便用于训练和评估神经网络模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值