天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1901|回复: 9

webservice返回的json如何取值

[复制链接]
zzxxjj 发表于 2018-7-5 19:21:43 | 显示全部楼层 |阅读模式
本帖最后由 Jilong 于 2018-7-10 17:46 编辑

使用Packages.cn.myapps.util.http.HttpRequestUtil.get(url,parm)方法返回的是json对象还是字符串?如何取到其中的属性值呢?
Chain 发表于 2018-7-6 10:05:28 | 显示全部楼层
参考如下脚本:
脚本里如何处理json字符串
http://www.teemlink.com/bbs/foru ... 7&fromuid=48618
(出处: 天翎myApps)
 楼主| zzxxjj 发表于 2018-7-6 11:00:59 | 显示全部楼层
本帖最后由 zzxxjj 于 2018-7-6 11:02 编辑

使用了以后报错了,我的代码

(function(){
        var url = "XXXXXX";
        var zgbm = "zgbm=19900602";
        println("url=="+url);
        var params = null;
        /**
        * 发起https Get请求并获取结果
        *
        * @param requestUrl
        * 请求地址
        * @param outputStr
        * 提交的数据
        * @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
        */
        var clbmjson = Packages.cn.myapps.util.http.HttpRequestUtil.get(url,zgbm);
        //var jsonObject = Packages.cn.myapps.util.http.HttpRequestUtil.post(url,params);
        println("clbmjson="+clbmjson);
        var jsonArray = new Packages.org.json.JSONArray(clbmjson);
        for(var i=0;i<jsonArray.length();i++){
                var jsonObject = jsonArray.getJSONObject(i);
                var clbm = jsonObject.getString("clbm");
       }
        println("clbm="+clbm);
})() ;
打印出来的结果
JsUtil:url==XXXXXXXXX
JsUtil:clbmjson={"clbm":"00000000"}
org.mozilla.javascript.WrappedException: Wrapped org.json.JSONException: JSONArray initial value should be a string or collection or array. (Form.CZBXD.Field(11e8-7e6a-5db02c44-9a91-31fc09673150).selectclbm.toHtmlText#19)

论坛不让发url,所以把url改成XXXXX了
Jilong 发表于 2018-7-9 16:01:54 | 显示全部楼层
添加一下返回值试一下   return xxx;
 楼主| zzxxjj 发表于 2018-7-10 09:10:34 | 显示全部楼层
Jilong 发表于 2018-7-9 16:01
添加一下返回值试一下   return xxx;

返回值返回什么呢?我的这个可以打印出来
println("clbmjson="+clbmjson);

JsUtil:clbmjson={"clbm":"00000000"}
Chain 发表于 2018-7-10 11:01:17 | 显示全部楼层
  1. (function(){
  2.         var url = "XXXXXX";
  3.         var zgbm = "zgbm=19900602";
  4.         println("url=="+url);
  5.         var params = null;
  6.         /**
  7.         * 发起https Get请求并获取结果
  8.         *
  9.         * @param requestUrl
  10.         * 请求地址
  11.         * @param outputStr
  12.         * 提交的数据
  13.         * @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
  14.         */
  15.         var clbmjson = Packages.cn.myapps.util.http.HttpRequestUtil.get(url,zgbm);
  16.         //var jsonObject = Packages.cn.myapps.util.http.HttpRequestUtil.post(url,params);
  17.         println("clbmjson="+clbmjson);
  18.         var jsonArray = new Packages.org.json.JSONArray(clbmjson);
  19.         for(var i=0;i<jsonArray.length();i++){
  20.                 var jsonObject = jsonArray.getJSONObject(i);
  21.                 var clbm = jsonObject.getString("clbm");
  22.        }
  23.          return clbm;
  24. })() ;
复制代码
 楼主| zzxxjj 发表于 2018-7-10 14:01:39 | 显示全部楼层

这一句报错啊:var jsonArray = new Packages.org.json.JSONArray(clbmjson);
org.mozilla.javascript.WrappedException: Wrapped org.json.JSONException: JSONArray initial value should be a string or collection or array. (Form.CZBXD.Field(11e8-7e6a-5db02c44-9a91-31fc09673150).selectclbm.toHtmlText#19)
 楼主| zzxxjj 发表于 2018-7-10 14:23:48 | 显示全部楼层
取到了,用var clbm=clbmjson.get("clbm");可以取到其中的值,
Chain 发表于 2018-7-10 14:35:19 | 显示全部楼层
zzxxjj 发表于 2018-7-10 14:23
取到了,用var clbm=clbmjson.get("clbm");可以取到其中的值,

你现在还有没有其他的疑问?
 楼主| zzxxjj 发表于 2018-7-10 16:35:42 | 显示全部楼层
Chain 发表于 2018-7-10 14:35
你现在还有没有其他的疑问?

没有了 可以结贴了

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 19:14

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表