在JAVA中读取JSON格式的字符串

在JAVA中读取JSON格式的字符串,java,json,Java,Json,我想将字符串读取为JSON格式(它不必是JSON,但看起来像JSON格式),并将其表示为hashMap(key:Keyword,value:COUNT) 例如,假设我有一个字符串 String s ={"Welcome":1,"Hi":2,"Hello":1,"Jin":1}; 然后,对其进行分类。(对于Hashmap关键字-->字,值-->数字)。最终结果如下所示 HashMap<String,String> result; result.get("Jin"); // out

我想将字符串读取为JSON格式(它不必是JSON,但看起来像JSON格式),并将其表示为hashMap(key:Keyword,value:COUNT)

例如,假设我有一个字符串

String s ={"Welcome":1,"Hi":2,"Hello":1,"Jin":1}; 
然后,对其进行分类。(对于Hashmap关键字-->字,值-->数字)。最终结果如下所示

HashMap<String,String> result;

result.get("Jin"); // output : 1
result.get("Hi"); // output : 2
使用JSON可以吗?还是我应该把它们一个一个分开?(例如用“,”first和“:”…等拆分)


请给我您的建议。

试试下面的代码片段

public static void main(final String[] args) throws ParseException {
        String s = "{\"Welcome\":1,\"Hi\":2,\"Hello\":1,\"Jin\":1}";
        JSONParser parser = new JSONParser();
        HashMap<String, Long> obj = (HashMap<String, Long>) parser.parse(s);
        for(String key : obj.keySet()) {
            System.out.println("Key:" + key + " value:" + obj.get(key));
        }
    }
publicstaticvoidmain(最终字符串[]args)引发异常{
字符串s=“{\'Welcome\':1,\'Hi\':2,\'Hello\':1,\'Jin\':1}”;
JSONParser=新的JSONParser();
HashMap obj=(HashMap)parser.parse;
for(字符串键:obj.keySet()){
System.out.println(“Key:+Key+”值:+obj.get(Key));
}
}

它是一个
json对象
而不是
数组

试试这个:

JSONObject jsonObj = new JSONObject(jsonString.toString());

实现这一点最简单的方法是使用JACKSON解析器

import java.util.HashMap;
import java.util.Map;

import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;

String s = "{\"Welcome\":1,\"Hi\":2,\"Hello\":1,\"Jin\":1}";
ObjectMapper mapper = new ObjectMapper();


Map<String, String> map = mapper.readValue(s, new TypeReference<HashMap<String, String>>() {
});

map.forEach((k, v) -> System.out.println("Key is " + k + " value is " + v));
您可以使用来满足您的需求

例如


使用GoogleJSON即gson库(2.6.2),您的问题将得到解决

请查看以下代码

import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;

import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;

public class StackOverFlowQuestionset {

    public static void main(String[] args) {
        String s ="{\"Welcome\":1,\"Hi\":2,\"Hello\":1,\"Jin\":1}"; 

        HashMap<String,String> result=new HashMap<String,String>();

        Gson gson = new Gson();

        JsonElement jsonElement = gson.fromJson(s, JsonElement.class);

        JsonObject jsonObject = jsonElement.getAsJsonObject();

        Set<Entry<String, JsonElement>> jsonEntrySet = jsonObject.entrySet();

        for(Entry<String, JsonElement> entry:jsonEntrySet){
            result.put(entry.getKey(), entry.getValue().toString());
        }

        System.out.println(result.get("Jin"));
        System.out.println(result.get("Welcome"));
        System.out.println(result.get("Hi"));
    }
}
import java.util.HashMap;
导入java.util.Map.Entry;
导入java.util.Set;
导入com.google.gson.gson;
导入com.google.gson.JsonElement;
导入com.google.gson.JsonObject;
公共类StackOverFlowQuestionset{
公共静态void main(字符串[]args){
字符串s=“{\'Welcome\':1,\'Hi\':2,\'Hello\':1,\'Jin\':1}”;
HashMap结果=新建HashMap();
Gson Gson=新的Gson();
JsonElement JsonElement=gson.fromJson(s,JsonElement.class);
JsonObject=jsonElement.getAsJsonObject();
Set jsonEntrySet=jsonObject.entrySet();
for(条目:jsonEntrySet){
result.put(entry.getKey(),entry.getValue().toString());
}
System.out.println(result.get(“Jin”));
System.out.println(result.get(“欢迎”);
System.out.println(result.get(“Hi”);
}
}

如果以下任何答案帮助您解决了问题,请投票并接受答案。
Key is Hi value is 2
Key is Hello value is 1
Key is Welcome value is 1
Key is Jin value is 1
String s = "{\"Welcome\":1,\"Hi\":2,\"Hello\":1,\"Jin\":1}";
JSONObject result = new JSONObject(s);

System.out.println(result.get("Jin")); // output : 1
System.out.println(result.get("Hi")); // output : 2
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;

import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;

public class StackOverFlowQuestionset {

    public static void main(String[] args) {
        String s ="{\"Welcome\":1,\"Hi\":2,\"Hello\":1,\"Jin\":1}"; 

        HashMap<String,String> result=new HashMap<String,String>();

        Gson gson = new Gson();

        JsonElement jsonElement = gson.fromJson(s, JsonElement.class);

        JsonObject jsonObject = jsonElement.getAsJsonObject();

        Set<Entry<String, JsonElement>> jsonEntrySet = jsonObject.entrySet();

        for(Entry<String, JsonElement> entry:jsonEntrySet){
            result.put(entry.getKey(), entry.getValue().toString());
        }

        System.out.println(result.get("Jin"));
        System.out.println(result.get("Welcome"));
        System.out.println(result.get("Hi"));
    }
}