导航:首页 > 编程语言 > ruby用api获取json

ruby用api获取json

发布时间:2023-04-02 22:25:05

『壹』 从API接口获取的json数据怎么存到对象的List集合中

1. 简单的手动放置 键值对 到JSONObject,然后在put到JSONArray对象里
List<Article> al = articleMng.find(f);
System.out.println(al.size());
HttpServletResponse hsr = ServletActionContext.getResponse();
if(null == al){
return ;
}
for(Article a : al){
System.out.println(a.getId()+a.getDescription()+a.getTitle());
}
JSONArray json = new JSONArray();
for(Article a : al){
JSONObject jo = new JSONObject();
jo.put("id", a.getId());
jo.put("title", a.getTitle());
jo.put("desc", a.getDescription());
json.put(jo);
}
try {
System.out.println(json.toString());
hsr.setCharacterEncoding("UTF-8");
hsr.getWriter().write(json.toString());
} catch (IOException e) {
e.printStackTrace();
}
复制代码
上述代码JSONArray是引入的org.json.JSONArray包

而用net.sf.json包下JSONArray的静态方法:fromObject(list) 这是网上大多是都是直接用此方法快捷转换JSON,但是对于Hibernate级联操作关联的对象,这个方法就会报错,如果将映射文件中的级联配置去掉就行了。

另外对于list的要求就是其中的元素是字符串或对象,否则JSON不知道你想要的是什么数据。

<many-to-one name="cmsent" column="comment_tid" class="com.fcms.cms.entity.CmsComment"
not-null="false" cascade="delete">
但是级联操作毕竟还是得存在,否则以后数据冗余、多余。

解决方法就是:JSONArray subMsgs = JSONArray.fromObject(object, config);

JsonConfig config = new JsonConfig();
config.setJsonPropertyFilter(new PropertyFilter() {
public boolean apply(Object arg0, String arg1, Object arg2) {
if (arg1.equals("article") ||arg1.equals("fans")) {
return true;
} else {
return false;
}
}
});

『贰』 如何使用 APICloud 的端 API 连接到自己的服务器数据库获取数据

方法/步骤
1
【首先】
1.如果想快速开发,没有自己的服务器,还是推荐使用云API的数据云。 2.不使用云API的数据云,可能是因为有web版且已经有商用数据。 3.不使用云API的数据云,需自己写数据接口,即客户端发送请求接收处理与生成json数据给客户端进行交互。 4.感谢APICloud提供新的APP开发方式。 其实也不难,使用api.ajax进行请求即可。PHPer,以下使用演示使用PHP,数据库使用Mysql,java党或者.NET党请自行coding...
2
【连接到数据库(文件放在服务器上),服务器端输出JSON】
<?php
/*
* 配置连接数据库信息
*/
$host='localhost';//主机
$user='root';//数据库账号
$password='';//数据库密码
$database='test';//数据库名
//打开数据库连接
$db=mysqli_connect($host,$user,$password,$database);
//判断连接是否成功
if($db){
$db->query("set names utf8");//设置UTF-8编码(JSON的唯一编码)
}else{
echo 'DATABASE_CONNECTION_DIE';//数据库连接失败
exit;
}
//sql查询语句
$sql="select id,name,sex,age from person";
$result=$db->query($sql);
while($row=$result->fetch_assoc()){
$person_info[]=$row;//将取得的所有数据赋值给person_info数组
}
echo json_encode($person_info);//输出JSON
?>
复制代码

输出的JSON示例:
[{"id":"1","name":"\u54c8\u5c3c","sex":"\u7537","age":"22"},{"id":"2","name":"\u5c0f\u9648","sex":"\u5973","age":"21"},{"id":"3","name":"\u5c0f\u767d","sex":"\u672a\u77e5","age":"1"}]
复制代码
3
【测试用的数据库SQL语句】
--
-- Database: `test`
--

-- --------------------------------------------------------

--
-- 表的结构 `person`
--

CREATE TABLE IF NOT EXISTS `person` (
`id` int(11) NOT NULL,
`name` varchar(5) NOT NULL,
`sex` varchar(2) NOT NULL,
`age` int(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- 转存表中的数据 `person`
--

INSERT INTO `person` (`id`, `name`, `sex`, `age`) VALUES
(1, '哈尼', '男', 22),
(2, '小陈', '女', 21),
(3, '小白', '未知', 1);

复制代码

搞定服务器端输出JSON后,重点来了...
4
【端API使用api.ajax读取接口数据】

点我获取数据

复制代码
5
OK,如果要POST方式,请自行参考官方文档。
思路就是这样,其它的依此类推:
客户端发送请求,服务器端接收处理后返回数据。
用户登录和状态检查推荐使用token检验,不要直接post密码。

『叁』 php获得api返回的json数据后,如何解析

返回是json数据,就用 json_decode(api返回的数据,true),转变成数组就可以在php中操作了。

『肆』 C#如何接受api传来的json数据

不知道你使用的是哪种api,如果是webapi的话可以用HttpClient 访问 api 获取json数据。

『伍』 用PHP调用API返回JSON值,怎么把JSON返回值调用到html呢

用json_decode()将json字符串转化成php数组,然后直接循环数组取出值即可版。
<?php
$content= file_get_contents('获取json字符权串的url');
$content = json_decode($content);//将json字符串转化成php数组
foreach ($content as $key ) {//循环数组
echo '<li>' . $key['city'] . '</li>';
echo '<li>' . $key['city_en'] . '</li>';
echo '<li>' . $key['date_y'] . '</li>';
echo '<li>' . $key['week'] . '</li>';
}

『陆』 ruby中用js抓取页面td中内容后,如何将其用json存储

首选你应该写jQuery
然后用Ajax的方式 把内容传给后台,唤源让Ruby 去解析这些内容, 正则什么的都可以转换成你想要的和含态数老仿据。

『柒』 rails怎么给前端写api实现前后端分离

Rails的初始准备见:Rails 处理跨站请求
准备完这个,接下来我们就只要管Control怎么写就行了。
首先来尝试一下get,最简单。
def index json_str = {"xx" => "hello"}.to_json render :json=>json_str, status=>'200' end

在这里我们用了一个to_json方法来处理,把Hash转换为json格式,to_json方法是Rails中特有的,并非Ruby本身的方法。
接着我们就可以滚去前端了:
在需要调用的位置使用:$http.get('http://localhost:3000');,这是最简单的获取方法,当然我们自然不可能获取了就走人,这只是一个测试,接下来我们要使用then来进行get之后的操作。
提示:使用$http接收之后json都会经过fromJson等一系列方法,务必保证收到的是JSON,否则会报错。
.then(function(res) { console.log(res); angular.forEach(res.data, function(value, key) { $scope.message.push({author: key, content: value}); });});

我们把get的分号去掉,加上这个,为了确定res收到的是什么,我们可以在控制台输出看一下,res.data里存储的就似乎收到的json(Object),用angular.forEach遍历即可。
这样一个简单的get就完成了。
POST相比较之下就比较折腾了,但也不是很复杂,最主要的是要确定怎么样才能获取POST的值,这里并没有像$_POST这样简单的变量。
在Controller 详解中我们知道:
如果在初始化脚本中开启了 config.wrap_parameters 选项,或者在控制器中调用了 wrap_parameters 方法,可以放心的省去 JSON 格式参数中的根键。Rails 会以控制器名新建一个键,复制参数,将其存入这个键名下。因此,上面的参数可以写成:
{ "name": "acme", "address": "123 Carrot Street" }

会自动进行转换,然后就可以用对应控制器名来访问。
这里我们检查config>initializers的对应文件夹,发现默认开启,,使用这个黑科技。
def create json_str = params[:article] json_str = json_str.to_json render :json=>json_str, status=>'200' end

我们的Controller是ArticlesController,所以很明显的这样子获取传进来的值,转换为json,接着传出(只是一个测试,理论上接下来要实验写入数据库)。
接下来开始写前端的部分:$http.post('http://localhost:3000/create', message)简单的POST操作,尝试是否成功获取到值。
post的参数非常有意思:post(url, data, [config]);其中data可以传入任意类型,他会尽可能的转换成json传入,之后获取到的值也会用fromJson尽可能的转换,供之后使用。
在post的之后是由是否成功来进行分支处理的,这里我们只写success。
.success(function(res) { console.log(res); $scope.message.push({author: res.author, content: res.content});});

一样,可以在控制台看看输出的值,会发现是一个json的Object,没有其他信息,直接使用即可。

『捌』 如何用java获取百度API返回的json数据的

importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.UnsupportedEncodingException;
importjava.net.HttpURLConnection;
importjava.net.MalformedURLException;
importjava.net.URL;

publicclassHttpRequestUtil{

/**
*从url请求中获得返回的字符串
*
*@paramrequestUrl
*@returnJSON字符串
*/
publicstaticStringHttpRequest(StringrequestUrl){
StringBuffersb=newStringBuffer();
InputStreamips=getInputStream(requestUrl);
InputStreamReaderisreader=null;
try{
isreader=newInputStreamReader(ips,"utf-8");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
BufferedReaderbufferedReader=newBufferedReader(isreader);
Stringtemp=null;
try{
while((temp=bufferedReader.readLine())!=null){
sb.append(temp);
}
bufferedReader.close();
isreader.close();
ips.close();
ips=null;
}catch(IOExceptione){
e.printStackTrace();
}
returnsb.toString();
}

/**
*从请求的URL中获取返回的流数据
*@paramrequestUrl
*@returnInputStream
*/
(StringrequestUrl){
URLurl=null;
HttpURLConnectionconn=null;
InputStreamin=null;
try{
url=newURL(requestUrl);
}catch(MalformedURLExceptione){
e.printStackTrace();
}
try{
conn=(HttpURLConnection)url.openConnection();
conn.setDoInput(true);
conn.setRequestMethod("GET");
conn.connect();

in=conn.getInputStream();
}catch(IOExceptione){
e.printStackTrace();
}
returnin;
}

}

阅读全文

与ruby用api获取json相关的资料

热点内容
maya粒子表达式教程 浏览:84
抖音小视频如何挂app 浏览:283
cad怎么设置替补文件 浏览:790
win10启动文件是空的 浏览:397
jk网站有哪些 浏览:134
学编程和3d哪个更好 浏览:932
win10移动硬盘文件无法打开 浏览:385
文件名是乱码还删不掉 浏览:643
苹果键盘怎么打开任务管理器 浏览:437
手机桌面文件名字大全 浏览:334
tplink默认无线密码是多少 浏览:33
ipaddgm文件 浏览:99
lua语言编程用哪个平台 浏览:272
政采云如何导出pdf投标文件 浏览:529
php获取postjson数据 浏览:551
javatimetask 浏览:16
编程的话要什么证件 浏览:94
钱脉通微信多开 浏览:878
中学生学编程哪个培训机构好 浏览:852
荣耀路由TV设置文件共享错误 浏览:525

友情链接