java - 我如何更改字符串字段的值(格式 json)?

标签 java json

我正在用 java 开发 Web 服务。

在服务中,我必须检查“desagg”字段的值,如果它等于 0,我不必执行任何操作,而如果它大于 0,我必须进行另一个查询,并将结果放在 json 内的“desArticle”字段的值

我尝试使用谷歌库的 gson 方法,但我认为这不是正确的方法

String sql="SELECT sigdoc as sigla, numdoc as numero, datdoc as data , procor AS seq_articolo, desagg , precorpo.codint as codiceInterno, qtauni AS quantitaArticolo, " + 
                " przuni AS prezzoVendita, (scont0/100) AS sconto1, (scont1/100) AS sconto2, (scont2/100) AS sconto3, impnet AS importoNetto, datcon as dataConsegna, serdoc as chiaveRiga," + 
                " coarfo as codiceArticolo, descri as desArticolo" + 
                " FROM precorpo " + 
                " INNER JOIN anamagge ON precorpo.codint=anamagge.codint " + 
                " WHERE tiprig=0 AND sigdoc='"+sigdoc+"' AND numdoc="+numdoc+"" + 
                " ORDER BY procor;";

try
        {

            json = db.executeQueryTOJSON2(sql);

            JsonObject jobj = new Gson().fromJson(json, JsonObject.class);

            int result = jobj.get("desagg").getAsInt();

            if (result > 0)
            {
                String query2=" select group_concat(descri) from memodocu where pointm="+result+" group by pointm;";

                ResultSet rs = db.executeQuery(query2);
                while(rs.next())
                {
                    String desc = rs.getString("group_concat(descri)");
                }
            }


        }
        catch(Exception e)
        {
            System.out.println("errore "+e);
        }

输出中的 json 为:

[ { "sigla":"PREV" , "numero":1.1000122E7 , "data":"" , "seq_articolo":1 , "desagg":0 , "codiceInterno":25951 , "quantitaArticolo":2.0 , "prezzoVendita":4.62 , "sconto1":0.0000 , "sconto2":0.0000 , "sconto3":0.0000 , "importoNetto":9.24 , "dataConsegna":"" , "chiaveRiga":7379 , "codiceArticolo":"A025951" , "desArticolo":"025951 ARTICOLO DI PROVA" }  , { "sigla":"PREV" , "numero":1.1000122E7 , "data":"" , "seq_articolo":2 , "desagg":100 , "codiceInterno":15879 , "quantitaArticolo":20.0 , "prezzoVendita":2.17 , "sconto1":0.0000 , "sconto2":0.0000 , "sconto3":0.0000 , "importoNetto":43.4 , "dataConsegna":"" , "chiaveRiga":7380 , "codiceArticolo":"A015879" , "desArticolo":"I want to modify this" }  ] 

我是 json 初学者

最佳答案

Gson 是正确的方法,根据文档,您可以解析字符串,然后通过给定的键获取类型值

这里是文档:

https://static.javadoc.io/com.google.code.gson/gson/2.6.2/com/google/gson/JsonElement.html#getAsInt--

JsonObject jobj = new Gson().fromJson(mySqlResultAsJson, JsonObject.class);



int result = jobj.get("desagg").getAsInt();

if (result >= 0)
{
    do another request
}

关于java - 我如何更改字符串字段的值(格式 json)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54634033/

相关文章:

java - 在高级数组列表中搜索字符串(Java)

java - Android audioRecord.read 缓冲区连接以制作波形

java - 如何判断Java中的 "unused"私有(private)字段是否真的被Spring使用了?

php - json_decode 使用 mysqli 返回数组 1

java - 从深度递归父子关系构建 JSON

javascript - 有没有办法创建与 JSON.stringify(jsObject) 创建的 Java <-> JSON 映射对象完全相同的字符串?

java - 在groovy中解析JSON时如何保持键的顺序

JavaMail Yandex 发件人

javascript - npm 删除 package.json 中不再存在的所有包

json - 在 TableView 中显示 JSON