ajax请求json和xml数据及对json和xml格式数据的解析

简介: ajax请求json和xml数据及对json和xml格式数据的解析
最近写插件的时候,遇到xml格式的数据,以前用xml比较少,一直都是json格式。这里对json和xml做个总结。

一、ajax请求json数据并解析


ajax的写法:


$.ajax({
      url: 'url',//接口的url
      type: 'POST',
      dataType: 'json',//返回数据的类型是json
      success : (data) => {
        console.log(data);//data是返回的数据,是String格式
        let result=JSON.stringify(data); //将data转换成json格式 
      },
      error : () => {
        alert('请求失败');
      }
    });

json数据解析:


例如上面代码,success回调函数中取得了json格式的数据result。假设数据为:

{
  id : 'mike',
  name : 'laowang',
  datas : 
  [
    [age : 1, passw : 'hhh'],
    [age : 2, passw : 'gghh']
  ]
}

解析数据只要用点(.)就行了。

result.id; //mike
result.datas[1]; // [age : 2, passw : 'gghh']

请求json经常出现的跨域报错:


Access to XMLHttpRequest at ‘http://xxxx.com/xxx’ from origin ‘null’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

有时候一些接口经常会出现这个错误。解决方案是把dataType的值json改为jsonp。

二、ajax请求xml数据并解析


ajax的写法:


这个和json差不多,就是把数据格式改成xml。

$.ajax({
      url: 'url',//接口的url
      type: 'POST',
      dataType: 'xml',//返回数据的类型是json
      success : (data) => {
        console.log(data);//data是返回的数据,类似于一个xml文件
      },
      error : () => {
        alert('请求失败');
      }
    });

xml数据解析:


xml数据的解析,推荐使用jQuery里面的方法。

如上代码,在success的回调函数拿到数据data之后。假设格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<resp>
<city>北京</city>
<updatetime>16:27</updatetime>
<shidu>23%</shidu>
<yesterday>
    <date_1>18日星期六</date_1>
    <high_1>高温 3℃</high_1>
    <low_1>低温 -4℃</low_1>
    <day_1>
        <type_1>多云</type_1>
    </day_1>
    <night_1>
        <type_1>晴</type_1>
    </night_1>
</yesterday>
<forecast>
<weather>
    <date>19日星期天</date>
    <high>高温 6℃</high>
    <low>低温 -4℃</low>
    <day>
        <type>晴</type>
    </day>
    <night>
        <type>晴</type>
    </night>
</weather>
<weather>
    <date>20日星期一</date>
    <high>高温 5℃</high>
    <low>低温 -6℃</low>
    <day>
        <type>晴</type>
    </day>
    <night>
        <type>多云</type>
    </night>
</weather>
</forecast>
</resp>

解析xml的写法一般为:主要是$().find().each()方法,注意这是一个循环方法

  $(data).find("resp").each(function(){//在data里面找resp标签
          let updateTime=$(this).find("updatetime").text();//把updatetime标签里面的值取出来
        });
相关文章
|
4天前
|
存储 缓存 安全
第二章 HTTP请求方法、状态码详解与缓存机制解析
第二章 HTTP请求方法、状态码详解与缓存机制解析
|
3天前
|
JSON NoSQL MongoDB
实时计算 Flink版产品使用合集之要将收集到的 MongoDB 数据映射成 JSON 对象而非按字段分割,该怎么操作
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
33 1
|
4天前
|
Web App开发 存储 缓存
第八篇 提升网页性能:深入解析HTTP请求优化策略(三)
第八篇 提升网页性能:深入解析HTTP请求优化策略(三)
|
4天前
|
消息中间件 前端开发 JavaScript
第七篇 提升网页性能:深入解析HTTP请求优化策略(二)
第七篇 提升网页性能:深入解析HTTP请求优化策略(二)
|
5天前
|
存储 JSON 数据处理
从JSON数据到Pandas DataFrame:如何解析出所需字段
从JSON数据到Pandas DataFrame:如何解析出所需字段
19 1
|
5天前
|
XML JSON 前端开发
基于若依的ruoyi-nbcio流程管理系统仿钉钉流程json转bpmn的flowable的xml格式(支持并行网关)
基于若依的ruoyi-nbcio流程管理系统仿钉钉流程json转bpmn的flowable的xml格式(支持并行网关)
32 3
|
5天前
|
XML JSON 前端开发
基于若依的ruoyi-nbcio流程管理系统仿钉钉流程json转bpmn的flowable的xml格式(简单支持发起人与审批人的流程)
基于若依的ruoyi-nbcio流程管理系统仿钉钉流程json转bpmn的flowable的xml格式(简单支持发起人与审批人的流程)
12 2
基于若依的ruoyi-nbcio流程管理系统仿钉钉流程json转bpmn的flowable的xml格式(简单支持发起人与审批人的流程)
|
4天前
|
编解码 前端开发 JavaScript
第六篇 提升网页性能:深入解析HTTP请求优化策略(一)
第六篇 提升网页性能:深入解析HTTP请求优化策略(一)
|
5天前
|
XML JSON 前端开发
基于若依的ruoyi-nbcio流程管理系统仿钉钉流程json转bpmn的flowable的xml格式(排它条件网关)
基于若依的ruoyi-nbcio流程管理系统仿钉钉流程json转bpmn的flowable的xml格式(排它条件网关)
11 3
基于若依的ruoyi-nbcio流程管理系统仿钉钉流程json转bpmn的flowable的xml格式(排它条件网关)
|
5天前
|
存储 缓存 Linux
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(三)--实时与非实时数据交互
本文介绍了Xenomai中的XDDP(Xenomai Distributed Data Protocol)通信机制,XDDP用于实时和非实时进程之间的数据交换。XDDP在Xenomai内核中涉及的数据结构和管理方式,以及创建XDDP通道后的实时端和非实时端连接过程。
27 0
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(三)--实时与非实时数据交互

推荐镜像

更多