簡體   English   中英

JsonObject正在將String轉換為JsonArray

[英]JsonObject is converting String to JsonArray

為什么要將測試元素更改為JSONArray,如何停止它?

import net.sf.json.JSONArray
import net.sf.json.JSONObject
HashMap<String,Object> stuff = new HashMap<String,Object>()
stuff.put("name","alex")
stuff.put("age","21")
stuff.put("consent",true)
stuff.put("test",'[1,2,true]')
JsonBuilder a = new JsonBuilder(stuff)
JSONObject b = a.getContent()

但是,當我查看b時,測試屬性是JsonArray。 我如何強制它保持字符串形式? 謝謝!

Google告訴我,這是Groovy的JsonBuilder一個非常普遍的問題。 如果您不能更改數據結構,我建議改用gson ,它可以使您更好地控制數據的序列化和反序列化。

如果您可以更改數據結構,建議將您在Map中粘貼的所有內容捆綁到域對象中。 這樣, JsonBuilder將具有數據類型來提供提示。 我不是100%肯定JsonBuilder會做正確的事,但是如果不必猜測數據類型,很有可能會做到。

如果您有這樣的簡化示例

class Person {
    String name;
    int age;
    boolean consent;
    String test;

    public Person(String name, int age, boolean consent, String test) {
        ...
    }                   
}

Person person = new Person("alex", 21, true, "[1,2,true]");

JsonBuilder a = new JsonBuilder(person);
JSONObject b = a.getContent();

您可能會有更好的運氣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM