JSON オブジェクトと Java オブジェクトが連携して動作する要点を理解するのに苦労しています。基本的に私がする必要があるのは、URL で JSON ファイルをチェックして、使用できるソフトウェアの更新バージョンがあるかどうかを確認することです。接続を開き、JSON をコンソールに出力できましたが、運が良かったのはそれだけです。私は主にGSONを利用しようとしています。以下は私がこれまでに持っているメインコードで、マニフェストはクラスのオブジェクトであり、さらに下に表示されています。現在のプログラムのバージョン番号と比較する必要があるため、主に JSON の「バージョン」フィールドに関心があります。
BufferedReader reader = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
stringV = reader.readLine();
//System.out.println(manifest);
while ((line = reader.readLine()) != null) {
stringV = stringV + gson.toJson(line);
//manifest = manifest + line;
}
System.out.println(manifest);
manifest man = gson.fromJson(manifest, manifest.class);
testString = man.getversion();
System.out.println(test);
私の質問の 1 つは、JSON 専用のクラスに関するものです。JSON のすべてのフィールドに対して宣言、get/set が必要ですか?
public class manifest{
private List<String> versions;
private String version;
private String current;
private String compatible;
private String published;
private String description;
private List<String> manifest;
private String jre;
public List<String> getVersions(){return versions;}
public String getversion(){return version;}
public String getcurrent(){return current;}
public String getcomp(){return compatible;}
public String getpub(){return published;}
public String getdesc(){return description;}
public List<String> getFileList(){return manifest;}
public String getjre(){return jre;}
public void setVersions(List<String> versions){this.versions = versions;}
public void setversion(String version){this.version = version;}
public void setcurrent(String current){this.current = current;}
public void setcomp(String compatible){this.compatible = compatible;}
public void setpub(String published){this.published = published;}
public void setdesc(String description){this.description = description;}
public void setFileList(List<String> manifest){this.manifest = manifest;}
public void setjre(String jre){this.jre = jre;}
@Override
public String toString(){
return String.format("Versions:%s,version:%s,curr:%s,comp:%s,pub:%s,desc:%s,manifest:%s,jre:%s",
versions, version, current, compatible, published, description, manifest, jre);
}
}
JSON の構造は次のとおりです。
{
"versions": [
{
"version": "II V7.1.2",
"current": true,
"compatible": true,
"published": "2012-04-21T18:25:43-05:00",
"description": "Stability improvements for users:\n\n-Fix a crash\n-Fix a bug",
"manifest": [
{
"name": "file.jar",
"checksum": "56116165156111156156116161651161616116165116116516651651"
}, (more elements here)
"jre": "1.7.0_17"
私はJSONにまったく慣れていないので、どんな助けでも大歓迎です。ありがとう!