这个是json字符串,可以使用fastjson,将这个字符串转换成jsonobject对象,该对象是MAP接口的一个实现,可以用objget(key)的方式获取该对象中key对应的值。
@JSONField
作用:在字段和方法上
1 Field:@JSONField作用在Field时,name可以定义输入key的名字,反序列化的时 值不会赋值到属性上
2 作用在setter和getter方法上
3 format :用在Date类型的字段来格式化时间格式
4 布尔类型:serialize和deserialize
在序列化的时候就不包含这个字段了。deserialize与之相反。但是有一点需要注意,当字段为final的时候注解放在字段上是不起作用的,这时候应该放在get或set方法上。
5 serialzeFeatures 属性:fastjson默认的序列化规则是当字段的值为null的时候,是不会序列化这个字段
对象序列化下边的类,结果是:{"name":"LiSi","age":18}
6 SerializerFeature枚举
当value的值为null的时候,依然会把它的值序列化出来: {"name":"LiSi","age":18,"address":null}
当字段类型为int类型时,会序列化成 0,需要把类型改成Integer
1 引入jar包
2 jsonProperty介绍
@JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty(value="name")。
3 jackson的@JsonIgnore使用
作用:在json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。
使用方法:一般标记在属性或者方法上,返回的json数据即不包含该属性。
参考如下内容:
package junittest;
import javautilArrayList;
import javautilHashMap;
import javautilList;
import javautilMap;
import comalibabafastjsonJSON;
import comalibabafastjsonTypeReference;
/
这里将json的转化和解析都放在一起了,大家可以根据实际需要来转化json字符串和解析json字符串
/
public class TestFastJson {
static class Person{
private String id ;
private String name;
private int age ;
public Person(){
}
public Person(String id,String name,int age){
thisid=id;
thisname=name;
thisage=age;
}
public String getId() {
return id;
}
public void setId(String id) {
thisid = id;
}
public String getName() {
return name;
}
public void setName(String name) {
thisname = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
thisage = age;
}
@Override
public String toString() {
return "Person [age=" + age + ", id=" + id + ", name=" + name + "]";
}
}
public static void main(String[] args) {
method1();
method2();
method3();
method4();
}
static void method1(){
Systemoutprintln("javabean转化示例开始----------");
Person person = new Person("1","fastjson",1);
//这里将javabean转化成json字符串
String jsonString = JSONtoJSONString(person);
Systemoutprintln(jsonString);
//这里将json字符串转化成javabean对象,
person =JSONparseObject(jsonString,Personclass);
Systemoutprintln(persontoString());
Systemoutprintln("javabean转化示例结束----------");
}
static void method2(){
Systemoutprintln("List<javabean>转化示例开始----------");
Person person1 = new Person("1","fastjson1",1);
Person person2 = new Person("2","fastjson2",2);
List<Person> persons = new ArrayList<Person>();
personsadd(person1);
personsadd(person2);
String jsonString = JSONtoJSONString(persons);
Systemoutprintln("json字符串:"+jsonString);
//解析json字符串
List<Person> persons2 = JSONparseArray(jsonString,Personclass);
//输出解析后的person对象,也可以通过调试模式查看persons2的结构
Systemoutprintln("person1对象:"+persons2get(0)toString());
Systemoutprintln("person2对象:"+persons2get(1)toString());
Systemoutprintln("List<javabean>转化示例结束----------");
}
static void method3(){
Systemoutprintln("List<String>转化示例开始----------");
List<String> list = new ArrayList<String>();
listadd("fastjson1");
listadd("fastjson2");
listadd("fastjson3");
String jsonString = JSONtoJSONString(list);
Systemoutprintln("json字符串:"+jsonString);
//解析json字符串
List<String> list2 = JSONparseObject(jsonString,new TypeReference<List<String>>(){});
Systemoutprintln(list2get(0)+"::"+list2get(1)+"::"+list2get(2));
Systemoutprintln("List<String>转化示例结束----------");
}
static void method4(){
Systemoutprintln(" List<Map<String,Object>>转化示例开始 ----------");
Map<String,Object> map = new HashMap<String,Object>();
mapput("key1", "value1");
mapput("key2", "value2");
Map<String,Object> map2 = new HashMap<String,Object>();
map2put("key1", 1);
map2put("key2", 2);
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
listadd(map);
listadd(map2);
String jsonString = JSONtoJSONString(list);
Systemoutprintln("json字符串:"+jsonString);
//解析json字符串
List<Map<String,Object>> list2 = JSONparseObject(jsonString,new TypeReference<List<Map<String,Object>>>(){});
Systemoutprintln("map的key1值"+list2get(0)get("key1"));
Systemoutprintln("map的key2值"+list2get(0)get("key2"));
Systemoutprintln("ma2p的key1值"+list2get(1)get("key1"));
Systemoutprintln("map2的key2值"+list2get(1)get("key2"));
}
}
以上就是关于Java 如何从string中获取某些特定的值全部的内容,包括:Java 如何从string中获取某些特定的值、fastJson的@JSONField和jackson的@JsonProperty使用、如何在Android Studio 中使用fastjson等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)