1. 程式人生 > >從資料庫獲取json組成的某一列並獲取json中的值

從資料庫獲取json組成的某一列並獲取json中的值

post提交:

{"tableName":"(表名)","field":"(列名)","where":"(查詢條件)","DBJson":{"url":"jdbc:(資料庫地址)?characterEncoding=UTF-8" ,"username":"","password":""}}

所獲取的列的形式:

{"success":"true","detail":{"check":"X50380缺失”,"code":"002","result":[{"notHappenProbability":0.99203277,"rejectionRate":0.6595714,"score":65.957146,"trainDataVersion":"100"}]}}

目的:獲取json中的score對應的分值

java程式碼:

String url= params.get("body").replaceAll("%(?![0-9a-fA-F]{2})", "%25"); 
param = URLDecoder.decode(url, "utf-8").trim();
JSONObject json=JSONObject.fromObject(param);

String dataName = json.getString("tableName");
String where = json.getString("where");
BatchService batchService = (BatchService)MyBeanFactory.getService("batchService");
JSONObject DBJson=json.getJSONObject("DBJson");
String field=json.getString("field");
List<JSONObject> findtPayment = batchService.findtPayment(dataName, where, DBJson);

List<String> ScoreList=new ArrayList<>();

               for(JSONObject jParam:findtPayment){
final JSONObject jsonObject= jParam.getJSONObject(field).has("params")? 
jParam.getJSONObject(field).getJSONObject("params"):jParam.getJSONObject(field);
  
if (jsonObject.getString("success").equals("true")) {
JSONObject detail=jsonObject.getJSONObject("detail");

if (detail.has("result")) {
JSONArray resultArray=detail.getJSONArray("result");
for(int i=0;i<resultArray.size();i++){
JSONObject object=resultArray.getJSONObject(i);
String score=object.getString("score");
ScoreList.add(score);
}
}
  }

}

注意:根據json格式寫判斷條件,我的json列裡面有打分不成功的情況,並且success=true之後還有可能出現打分失敗沒有result的情況,所以添加了判斷條件。

相關推薦

資料庫獲取json組成獲取json

post提交:{"tableName":"(表名)","field":"(列名)","where":"(查詢條件)","DBJson":{"url":"jdbc:(資料庫地址)?characterEncoding=UTF-8" ,"username":"","password

使用Sparksql計算資料庫欄位的位數

該方法是基於Sparksql內建函式進行計算 我先上程式碼: dataset和columnName最為引數,columnName是欄位名,dataset是什麼不說了,首先通過得到columnName欄位在dataset中的下標位置,再通過withColumn在

修改DataTable的型別和記錄

  在做DataTable匯出Excel表格時,有些列的值由於是Decimal型別的,匯出來是用科學計數法顯示的。當然如果手動修改匯出的Excel表格的話也是可以的,只要把該列由數字模式改為文字模式即可。下面的方法可以

C#獲取資料庫select

首先SqlConnection需要引入的名稱空間為System.Data.SqlClient public static void OpenDateBase() { List<int> idList = new List<int>();

獲取DataTable的所有

from data values type list() 方法 select field 字段id /// <summary>/// 獲取某一列的所有值/// </summary>/// <typeparam name="T">列數據類型

Linux:使用awk命令獲取文本的一行,

file int lena 文本文 print 文本 In linux 命令 1、打印文件的第一列(域) : awk ‘{print $1}‘ filename2、打印文件的前兩列(域) : awk ‘{pri

js獲取table的行數和表格一行的內容

table的id=“tab” 一、獲取table的行數 var count=document.getElementById("tab").rows.length; 二、獲取第i行第j列的內容(方式不止三種,根據實際情況選擇,比較推薦方式一) 方式一: var title=tab.rows

查詢資料庫重複的資料,查詢刪除重複的資料

查詢LSCJMB表中F_CJZY對應列值重複的資料: SELECT F_CJZY,COUNT(F_CJZY) FROM LSCJMB GROUP BY F_CJZY HAVING COUNT( F_CJZY )>1 查出了重複的列及重複行數: 刪除全部涉及重複的資料: del

python獲取矩陣元素

今天寫線性迴歸問題的時候遇到了一個問題: 對於一個二維矩陣, python如何遍歷其某一列元素. 遍歷一行是很簡單的, 直接使用索引即可, 但是遍歷一列呢? 方法一: 直接遍歷法 使用一個迴圈,

ligerui 表單驗證 隱藏 獲取對應行的資料

ar v = $("#PostForm").validt({ //除錯狀態,不會提交資料的 debug: true, rules: { DEPART_ID: 'required', P_DSC: 'required', }, 此處,rules裡的DEPART_ID和P_DS

獲取表格的一行

這裡的eq是從0開始的,下面的這句話意思是取id=“cetrlist ”的第2行第2列的值。 var tt = $("#cetrlist tr:eq(1) input:eq(1)").val(); 取值可能為“”,也有可能是undefined if ($("#cetrlis

查詢資料庫出現某個詞的個數,累加,不存在補0

場景描述:辦案方式、處置情況、辦理結果分別為一個欄位,下邊的分支分別對應欄位的不同值。現需要統計每個欄位不同值的數量,沒有的需要填0,存在的進行累加。selectCASE_INFO.CITY_CODE ,"SUM"("DECODE"("CASE_INFO"."CASE_AJL

PHP獲取個數組,作為新陣列返回

array_column(array,column_key,index_key);返回輸入陣列中某個單一列的值。 /**  * array             規定要使用的多維陣列  * column_key  需要返回值的列   *                  

頁面載入時通過獲取GridView來控制的控制元件屬性

通過獲取狀態來控制“檢視”按鈕的Visible屬性值。           在前臺GridView中新增 OnRowDataBound="GridView1_RowDataBound“,如下: <asp:GridView ID="GridView1" runat="

Linux:使用awk命令獲取文字的一行,

1、列印檔案的第一列(域) awk '{print $1}' filename 2、列印檔案的前兩列(域) awk '{

mysql資料庫刪除重複的全部行和只留

如果沒有加上一個中間表t,即這句話 select t.id from去掉直接寫成delete from fatie where id not in(select max(id) a.id1 from fatie a group by a.name);mysql會提示錯誤:You can't specify t

substr函式是用來擷取資料庫欄位的一部分。

SUBSTR函式是用來擷取資料庫某一列欄位中的一部分。 在各個資料庫的函式名稱不一樣(真是蛋疼,後發明的資料庫難道不能同先發明的一樣嗎?) 複製程式碼 程式碼如下: MySQL: SUBSTR(

Excel讀取的宏代碼VBA代碼源碼及解說(詳盡版)

vba 宏 excel 批量操作背景業務需要依據詳細設計文檔編寫所有對應的頁面問題工作量大,11張大表(幾十上百字段)時間緊 3天完成核心有完整的表設計,可通過excel手動編輯完成。新問題普通字段沒問題,可增加了字典後工作量驟然提升,這種特殊性讓工作的難度和體量都給手工操作Excel帶來了挑戰解決方案通過代

js表格按排序

.so -1 當前 rtb down gets esc == 字段排序 //本質就是對象按某個屬性排序 //這裏采用先排序後臺返回的json數據再渲染的方式 /*排序*/function getSortFun(order, sortBy) { var ordAlpah