1. spring3.0 怎么把json里面的null值替换成空字符串
恐怕要自己修改 JSONWriter.class
private void string(Object obj)
{
add('"');
CharacterIterator it = new StringCharacterIterator(obj.toString());
for (char c = it.first(); c != 65535; c = it.next()) {
if (c == '"')
add("\\\"");
else if (c == '\\')
add("\\\\");
else if (c == '/')
add("\\/");
else if (c == '\b')
add("\\b");
else if (c == '\f')
add("\\f");
else if (c == '\n')
add("\\n");
else if (c == '\r')
add("\\r");
else if (c == '\t')
add("\\t");
else if (Character.isISOControl(c))
unicode(c);
else {
add(c);
}
}
add('"');
}
2. 用afnetworking请求得到的json数据怎么去掉空值
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@""]];//这里要将url设置为空
httpClient.parameterEncoding = AFJSONParameterEncoding;
[httpClient setDefaultHeader:@"Accept" value:@"text/json"];
NSMutableDictionary *params=[[NSMutableDictionary alloc] init]; // 要传递的json数据是一个字典
[params setObject:UserID forKey:@"userId"];
[params setObject:[self.contDic objectForKey:@"weiboId" ] forKey:@"operateId"];
[params setObject:@"" forKey:@"key"];
// httpClient 的postPath就是上文中的pathStr,即你要访问的URL地址,这里是向服务器提交一个数据请求,
[httpClient postPath:pathStr parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"data====%@",params);
NSString *responseStr = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"Request Successful, response '%@'", responseStr);
[responseStr release];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"[HTTPClient Error]: %@", error);
3. (JAVA )json解析数据有空值解析不了怎么办
json里面有空值是可以解析的 就是解专析出来的值为属空
JSONObject ob = JSONObject.fromObject(json);
JSONObject itemMajorInfo = ob.JSONObject("itemMajorInfo");
String employeeName = itemMajorInfo.getString("employeeName");
System.out.println(employeeName);//值为空
4. 如何验证接口响应json字段值不为空
//获取验证字段不为空
privateStringcheckDataNotNull(List<String>lines,Stringkey,Stringvalue){
Stringcontent=lines.toString();
Stringvalue1=value;//存放一个value,因为后面回去value进行编辑
if(key==null||key.isEmpty()||lines.isEmpty()){
returnvalue1;
}
if(key.equalsIgnoreCase("notnull")){
value=value.replace(",",",");//替换掉中文逗号
if(value.indexOf(",")==-1){//如果不存在逗号,则直接进入验证
if(!content.contains(value1)){
returnauthor;
}
for(intk=0;k<lines.size();k++){
Stringline=lines.get(k);
if(line.contains(key+":")){
StringlineValue=deleteCharFromString(key+":",line);
if(lineValue==null||lineValue.isEmpty()){
returnauthor;
}
}
}
returnvalue1;
}else{//如果包含逗号,先将中文逗号转化为英文都好
List<String>list=newArrayList<>();//用list存放获取到的value中的值
for(inti=0;i<10;i++){//for循环获取验证文本
if(value.indexOf(",")==-1){//如果已经到头,则直接赋值并添加list,跳出循环
Stringkey1=value;
list.add(key1);
break;
}
Stringkey1=value.substring(0,value.indexOf(","));//截取字符串
list.add(key1);//添加list
value=deleteCharFromString(key1+",",value);//删除截取到的字符串
}
List<String>results=newArrayList<String>();
for(inti=0;i<list.size();i++){
Stringkeys=list.get(i);
for(intk=0;k<lines.size();k++){
Stringline=lines.get(k);
if(line.contains(key+":")){
StringlineValue=deleteCharFromString(key+":",line);
if(lineValue==null||lineValue.isEmpty()){
results.add(author);
break;
}
}
}
results.add(keys);
}
StringBuffertext=newStringBuffer();
for(inti=0;i<results.size();i++){
if(i==results.size()-1){
text.append(results.get(i));
continue;
}
text.append(results.get(i)+",");
}
Stringtexts=text.toString();
//output(texts,value1);
returntexts;//返回值
}
}else{
returnauthor;
}
}
5. java中json对象有没有方法可以把null值转换成空字符串
1.SerializerFeature.WriteMapNullValue 是否输出值为null的字段,默认为false也就是说有null时会输出而不是忽略(默内认策略容是忽略,所以看不到为null的字段)
2.WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null 注意是字段是字段是字段,而不是json.put("key",null),所以用它时,字段为null的可以转换为空字符串。
3.如果让输出的json中所有为null的字符串都变成空字符串,最简单的做法就是加一个值过滤器,这样就避免了有的字段为null,有的字段为空字符的现象。
6. springMVC,json视图,返回的json数据有null值,怎么过滤成空串
自己构建ObjectMapper注入进去,在ObjectMapper中设置NOT_NULL不转换回
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
答 <property name="" value="true" />
<property name="objectMapper">
<bean class="org.codehaus.jackson.map.ObjectMapper">
<property name="serializationInclusion">
<value type="org.codehaus.jackson.map.annotate.JsonSerialize$Inclusion">NON_NULL</value>
</property>
</bean>
</property>
</bean>
7. gson实体转json时当字段值为空时,json串中就不存在该属于,请问如何在值为空的时候也保留该字符串
用这种方式就可以了:
Gson g = new GsonBuilder().serializeNulls().create();
8. $.ajax传递json格式参数,某属性为null,取值为空字符串的问题。
对于服务器端来说接收的json数据格式都是字符串类型的,javascript的变量类型是无法和后端语言通用的 ,查查B/S架构的原理就明白了。服务器端可以设置 接收到""时设定变量为null 保存起来。
9. 获取json中key的值时为空
alert(eval(json)[0].address);
以此类推!
10. json串中怎么把值为null的属性过滤掉
^String s = ":{\"a\":1,\"b\":2,\"c\":null,\"d\":[{\"aa\":[{\"aaa\":null,\"bbb\":222}],\"bb\":22,\"cc\":null}]}";
// 把形如:"a":null, 把后面有个逗号的给替换掉,这个替换掉,如果最后一个,回cc:null是无法替换掉的
s = s.replaceAll("\"[^答\"]+\":null,", "");
// 把形如:,"a":null 把前面有个逗号的给替换掉
s = s.replaceAll(",\"[^\"]+\":null", "");
System.out.println(s);
:{"a":1,"b":2,"d":[{"aa":[{"bbb":222}],"bb":22}]}