【问题标题】:Print data of JSONObject in java. [duplicate]java中JSONObject的打印数据。 [复制]
【发布时间】:2018-12-26 07:35:02
【问题描述】:

我有一个 JSONObject 包含一个简单的 json 文档(不包含嵌套对象或 JSONArray)。我想打印那些数据。

import org.json.JSONObject;
import java.util.Scanner;
public class Test2{
  public static void main(String[] args) {
    Scanner scan=new Scanner(System.in);
    String s=scan.nextLine();
    JSONObject j=new JSONObject(s);
    // What code should I write here
  }
}

假设输入是{fname:"Stack", lname:"Overflow"},那么输出应该是:-

fname => Stack
lname => Overflow

如果输入是{country:"India", city:"Delhi"}那么输出应该是:-

country => India
city => Delhi

你能帮我怎么做吗?

【问题讨论】:

    标签: java json


    【解决方案1】:

    您可以从documentation 迭代keys,并获取values

    1. 使用Streams

      j.keySet().stream().map(k -> k +"=>"+ j.get(k)).forEach(System.out::println);
      
    2. 使用经典的for each loop

      for(String key : j.keySet()){
          String val = j.getString(key);
          System.out.println(key +"=>"+ val);
      }
      

    另外你的 JSON 无效,应该是 {"fname":"Stack", "lname":"Overflow"}

    【讨论】:

    • 您不应该花这么多时间来回答一个已经被问过并回答过很多次的问题。只需对它投一票并继续前进
    • @TimCastelijns 我通常,并且总是在可能的情况下这样做,但是在我的回答之后出现了重复,我不知道它们,我也没有使用相同的方式,但每个方式都不那么老了流而不是链接中的基本数组迭代
    • 重复出现在我的回答之后 - 搜索它们需要 10 秒。你也可以在回答之前自己做这个
    猜你喜欢
    • 2020-01-11
    • 2016-11-09
    • 2012-07-08
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多