2012-09-27 5 views
1

J'utilise Bing Search API pour obtenir des résultats Web. Je reçois les 2 meilleurs documents, et le JSON est montré ci-dessous.Comment puis-je analyser json en Java

{"d": 
{"results": 
[{"__metadata": 
    {"uri":"https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?Query=\u0027bill\u0027gates\u0027&$skip=0&$top=1","type":"WebResult"}, 
    "ID":"9bd0942f-fe5b-44fc-8343-ef85e5b93a7e", 
    "Title":"The Official Site of Bill Gates - The Gates Notes", 
    "Description":"In the space between business and goverment, even a small investment can make a big impact on the lives of those in need.", 
    "DisplayUrl":"www.thegatesnotes.com", 
    "Url":"http://www.thegatesnotes.com/"}, 

{"__metadata": 
    {"uri":"https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?Query=\u0027bill\u0027gates\u0027&$skip=1&$top=1","type":"WebResult"}, 
    "ID":"fdf0d3b9-b29f-43ef-b5ba-6bb4b1b04458", 
    "Title":"Bill Gates - Wikipedia, the free encyclopedia", 
    "Description":"William Henry \"Bill\" Gates III (born October 28, 1955) is an American business magnate and philanthropist. Gates is the former chief executive and current chairman of ...", 
    "DisplayUrl":"en.wikipedia.org/wiki/Bill_Gates", 
    "Url":"http://en.wikipedia.org/wiki/Bill_Gates"}, 

], 
"__next":"https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?Query=\u0027bill\u0027gates\u0027&$skip=10&$top=10" 
} 
} 

Comment utiliser Gson pour l'analyser en Java?

+4

Lisez la documentation à http://code.google.com/ p/google-gson/ – Jesper

+1

C'est vraiment simple. Montrez votre effort, je serai heureux de vous aider. – Nishant

+0

Je crée deux classes d et métadonnées, mais lorsque j'utilise fromJson(), j'ai la valeur null. Je ne connais pas la structure de données de cette chaîne JSON. –

Répondre

1
public class Metadata{ 
    public String uri; 
    public String Query; 
    public String ID; 
    public String Title; 
    public String Description; 
    public String DisplayUrl; 
    public String Url; 
} 

public class ResponseResults{ 
    public MetadataContainer[] results; 
    public String __next; 
} 


public class MetadataContainer{ 
    public Metadata __metadata; 
} 


public class ResponseData{ 
    public ResponseResults d; 
} 

String json; //Your json response 
ResponseData myD = new Gson().fromJson(json, ResponseData.class); 
+0

Salut, j'ai utilisé votre structure de données, mais myD est null. Y a-t-il un problème avec la structure? –

+0

Oui sory. ne l'a pas testé. Je vais éditer la réponse – Greensy

+0

oui, il y a un conteneur en dehors du "d"! THX! –

2
import java.io.BufferedReader; 
import java.io.FileReader; 
import java.io.IOException; 
import com.google.gson.Gson; 

public class GsonDemo { 
    public static void main(String[] args) { 
    Gson gson = new Gson(); 
    try { 
     String json = "" ; // your json string 
     //convert the json string to object 
     YourObject obj = gson.fromJson(json, YourObject.class); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    } 
}