Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java中的字符串读取json_Java_Json - Fatal编程技术网

从java中的字符串读取json

从java中的字符串读取json,java,json,Java,Json,如果JSON数据在字符串中,如何从下面的JSON中读取数据 { "name": "test", "values": [ { "valu": "23", "valu1": "24", "valu2": "25" } ] } 您将需要一些库来为您的应用程序进行解析。另见。我认为这对您来说是最容易开始的。使用和其中一种Gson#fromJson方法 简单的例子: 定义要

如果JSON数据在字符串中,如何从下面的JSON中读取数据

{
    "name": "test",
    "values": [
        {
            "valu": "23",
            "valu1": "24",
            "valu2": "25"
        }
    ]
}

您将需要一些库来为您的应用程序进行解析。另见。我认为这对您来说是最容易开始的。

使用和其中一种
Gson#fromJson
方法

简单的例子:

定义要将json数据映射到的类:

static class Hobby {
    Hobby(String n) { name = n; }
    String name;
    @Override
    public String toString() {
        return "Hobby [name=" + name + "]";
    }
}

static class Person {
    String firstName, lastName;
    int age;
    List<Hobby> hobbies = new ArrayList<Hobby>();
    @Override
    public String toString() {
        return "Person [firstName=" + firstName + ", lastName=" + lastName
                + ", age=" + age + ", hobbies=" + hobbies + "]";
    } 
}
这张照片是:

Person [firstName=John, lastName=Doe, age=24, hobbies=[Hobby [name=Programming], Hobby [name=Sports]]]
请参阅该类的javadoc以了解其他备选方案。也可以看看他们的

试试看{
字符串数据=null;
String url=“localhost:8080/test/rest/Action/xyz”;
字符串[]dataArray=null;
DefaultHttpClient=新的DefaultHttpClient();
HttpUriRequest getRequest=新的HttpGet(getUrl);
getRequest.addHeader(“用户代理”,用户代理);
getRequest.addHeader(基本模式.authenticate)(新用户名密码凭据(“密钥”),
“pwd”),“UTF-8”,假);
setHeader(“内容类型”、“应用程序/json”);
HttpResponse response=client.execute(getRequest);
HttpResponse response=client.execute(请求);
BufferedReader rd=新的BufferedReader(新的InputStreamReader(response.getEntity().getContent());
System.out.println(“响应代码:+Response.getStatusLine().getStatusCode());
data=rd.readLine();
}
}捕获(){
}
试一试{
HttpGet请求=新的HttpGet(url);
HttpResponse response=client.execute(请求);
System.out.println(“响应代码:+Response.getStatusLine().getStatusCode());
data=EntityUtils.toString(response.getEntity());
dataArray=data.split(“,”);
} 
捕获(例外情况除外){
}
JSONObject mJSONObject=新的JSONObject(数据);
试一试{
JSONArray mjSONArray=mJSONObject.getJSONArray(“值”);
对于(int i=0;i

使用它,您可以获得变量中的所有jsonarray数据。

有许多JSON解析器。 我发现很容易实现。 一组示例演示如何使用字符串创建JSON对象

下面是一个从字符串中读取JSON对象的代码片段。(直接从上面的解码示例页面链接获取此片段。)


JSONObject是一个java.util.Map,JSONArray是一个java.util.List,因此您可以使用Map或List的标准操作访问它们

@amrutha这是您要将json字符串转换为的tpye,您必须创建的一个类。请参阅我链接到的用户指南。@amrutha,我添加了一个小示例,请参阅我的编辑。有人能帮助我吗使用restful WebService消费和生成json如果上述json来自url,我可以读取它而不将其保存到stringpublic类olaptemplate{public static void main(String[]args){try{url url url=new url(“);httpURLConnection conn=(httpURLConnection)url.openConnection();conn.setRequestMethod(“GET”);conn.setRequestProperty(”Accept,“application/json”);BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream());字符串输出;StringBuilder sb=new StringBuilder();while((output=br.readLine())!=null){sb.append(output);System.out.println(“Data,.”+output);}conn.disconnect();}catch(){}}这里我的url有json数据,我可以打印它,但是如何将单个数据保存到变量中并进一步使用它?您希望变量中包含什么?json数组还是单个json值?这个问题已经得到了频繁的回答,因此当so向您建议“相关”时,您需要积极地转向另一种方式“问题。有人能帮我使用restful消费和生成json吗?”webservice@amrutha:Find a?如果没有Spring,我需要一个示例来使用和生成JSON
static class Hobby {
    Hobby(String n) { name = n; }
    String name;
    @Override
    public String toString() {
        return "Hobby [name=" + name + "]";
    }
}

static class Person {
    String firstName, lastName;
    int age;
    List<Hobby> hobbies = new ArrayList<Hobby>();
    @Override
    public String toString() {
        return "Person [firstName=" + firstName + ", lastName=" + lastName
                + ", age=" + age + ", hobbies=" + hobbies + "]";
    } 
}
@Test
public void fromJson() {
    Person o = new Gson().fromJson(
            "{\r\n" + 
            "    \"firstName\":\"John\",\r\n" + 
            "    \"lastName\":\"Doe\",\r\n" + 
            "    \"age\":24,\r\n" + 
            "    \"hobbies\":[\r\n" + 
            "        {\r\n" + 
            "            \"name\":\"Programming\"\r\n" + 
            "        },\r\n" + 
            "        {\r\n" + 
            "            \"name\":\"Sports\"\r\n" + 
            "        }\r\n" + 
            "   ]\r\n" + 
            "}",
            Person.class);
    System.out.println(o.toString());
}
Person [firstName=John, lastName=Doe, age=24, hobbies=[Hobby [name=Programming], Hobby [name=Sports]]]
  try {

             String data = null;
             String url = "localhost:8080/test/rest/Action/xyz";
             String[] dataArray = null;
             DefaultHttpClient client = new DefaultHttpClient();
             HttpUriRequest getRequest = new HttpGet(getUrl);
             getRequest.addHeader("User-Agent", USER_AGENT);
             getRequest.addHeader(BasicScheme.authenticate(new UsernamePasswordCredentials("key",
                "pwd"), "UTF-8", false));
             getRequest.setHeader("Content-Type", "application/json");
             HttpResponse response = client.execute(getRequest);

             HttpResponse response = client.execute(request);

             BufferedReader rd = new BufferedReader(new  InputStreamReader(response.getEntity().getContent()));
             System.out.println("Response Code : " +  response.getStatusLine().getStatusCode());
             data = rd.readLine();

            }

        } catch () {
       }

try {

        HttpGet request = new HttpGet(url);
        HttpResponse response = client.execute(request);
        System.out.println("Response Code : " + response.getStatusLine().getStatusCode());

        data = EntityUtils.toString(response.getEntity());
        dataArray = data.split(",");
    } 
    catch (Exception ex) {
    }
    JSONObject mJSONObject = new JSONObject(data);

    try {
        JSONArray mjSONArray = mJSONObject.getJSONArray("values");
        for (int i = 0; i < mjSONArray.length(); i++) {
            JSONObject obj;
            obj = mjSONArray.getJSONObject(i);
            valu = obj.getString("valu");
            valu1= obj.getString("valu1");
            valu2= obj.getString("valu2");
            system.out.println(valu);               
            system.out.println(valu1);               
            system.out.println(valu2);
        }
  System.out.println("=======decode=======");

  String s="[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
  Object obj=JSONValue.parse(s);
  JSONArray array=(JSONArray)obj;
  System.out.println("======the 2nd element of array======");
  System.out.println(array.get(1));
  System.out.println();

  JSONObject obj2=(JSONObject)array.get(1);
  System.out.println("======field \"1\"==========");
  System.out.println(obj2.get("1"));    


  s="{}";
  obj=JSONValue.parse(s);
  System.out.println(obj);

  s="[5,]";
  obj=JSONValue.parse(s);
  System.out.println(obj);

  s="[5,,2]";
  obj=JSONValue.parse(s);
  System.out.println(obj);