解析json串,利用正则表达式,split

public class SplitJson {

public static void main(String[] args) {
        // TODO Auto-generated method stub
     String str = "[{\"version\":\"100\"},{\"type\":\"210\"},{\"chanl_no\":\"30\"},{\"chanl_sub_no\":\"3001\"},{\"chanl_date\":\"\"},{\"chanl_time\":\"\"},{\"ectip_date\":\"\"},{\"chanl_flow_no\":\"\"},{\"ectip_flow_no\":\"\"},{\"chanl_trad_no\":\"3FC012\"},{\"term_inf\":\"\"},{\"resp_code\":\"\"},{\"resp_msg\":\"\"},{\"page\":\"\"},{\"maxrow\":\"\"},{\"locstr\":\"\"},{\"tot_rec\":\"\"},{\"ARRAY_3FC012\":\"\"},{\"0\":\"\"},{\"age\":\"23\"},{\"name\":\"小cn\"},{\"sex\":\"男\"},{\"1\":\"\"},{\"sex\":\"女\"},{\"age\":\"24\"},{\"name\":\"小王\"},{\"29\":\"\"},{\"name\":\"小张\"},{\"age\":\"22\"},{\"sex\":\"男\"}]";
     //正则表达式的串为{\"29\":\"\"}
     String[] splitStr = str.split("\\{\\\"\\d{1,2}\\\":\\\"\\\"\\}");
     String resultStr = splitStr[0];
     for(int i = 1; i < splitStr.length; i++){
         resultStr += splitStr[i].replaceAll("\\},\\{", ",").substring(1);//去掉多余逗号
     }
     System.out.println(str);
     System.out.println(resultStr);
     //测试空指针异常
     System.out.println(spitJson(null, null));
     System.out.println(spitJson("", null));
     System.out.println(spitJson("", ""));
    }
    
    public static String spitJson(String jsonStr, String regex){
        if(jsonStr == null || regex == null ) return "";
        String[] splitStr = jsonStr.split(regex);
        String resultStr = splitStr[0];
        
        return resultStr;
    }

}

时间: 2024-08-29 16:35:41

解析json串,利用正则表达式,split的相关文章

序列化后的json串与解析json串实体间的关系

一般用一个实体去解析一个json串通常会存在以下几种情况: 1.序列化成json的实体属性多于解析json串的实体属性. 2.解析json串的实体属性多于序列化成json的实体属性. 3.序列化成json串的实体类与解析json串的实体类名字不一致. 4.序列化成json串的实体的属性跟解析json串实体属性类型不一致,但名字一致. 5.是否任意一个实体都可以解析json串. 以下是实验的例子: 1.序列化成json的实体属性多于解析json串的实体属性. 这是序列化成json的实体类型. pu

C++ 解析json串

首先, C++ 解析json串,需要用到第三方库(json_vc71_libmtd.lib).然后,VS2010,创建项目json_read,配置项目属性.最后,拷贝下面的代码就可以看到效果了. #include "stdafx.h" #include "../json/include/json.h" int _tmain(int argc, _TCHAR* argv[]) { const char * str = "{\"machineCode

Java用JSONObject-lib来解析json串

直接贴代码:(所需jar包:json-lib.jar,可能会关联一些其它的jar包,请自行搜索.) import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class

java解析json串

Java code ? 1 {"weatherinfo":{"city":"北京","cityid":"101010100","temp1":"-8℃","temp2":"4℃","weather":"晴","img1":"n0.gif","

ANDROID_MARS学习笔记_S02_015_Gson解析json串为对象集合

package com.example.s02_e12_json3; import java.lang.reflect.Type; import java.util.Iterator; import java.util.LinkedList; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; impor

android下基本json串的生成与解析

以前就用过json串,不过是在java环境下面,如今转移到android环境下,java里面生成解析json串的jar包与android中自带的冲突,所以也只能用安卓自带的. 先前查网上的资料,感觉很多都说的很乱,直接给出了例子,也不解释一下就算完成,他们自己肯定是明白的,但是让读者理解起来肯定有点难度.而且解析的方法很多,而这里,我就介绍一种最原始最简单的吧.希望我拙劣的表达能力不会影响到你们的理解. 首先我们先讲一下json串格式 比如对象pet(宠物) class pet{ int pet

使用Gson解析Json数组遇到的泛型类型擦除问题解决方法

谷歌Gson转换Json串有如下方法: public Object fromJson(String json, Type typeOfT); 可以使用它进行数组解析.如下,使用此方法解析Json串为类型MyBean的List数组,方法可用. List<MyBean> lst = new Gson().fromJson(data, new TypeToken<List<MyBean>>(){}.getType()); 但如果把MyBean改为泛型T,封装此方法为如下: L

Swift: Alamofire -&gt; http请求 &amp; ObjectMapper -&gt; 解析JSON

1 2 3 4 5 6 7 8 9 10 11 NSURL *URL = [NSURL URLWithString:@"http://example.com/resources/123.json"]; AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:URL.absoluteString parameters:nil     progress:nil     success:^(NS

Swift: 用Alamofire做http请求,用ObjectMapper解析JSON

演示样例代码看最后. 跟不上时代的人突然间走在了时代的前列,果然有别样的风景.首先歧视一下AFNetworking.这个东西实在太难用了.不想封装都不行,要不写一大堆代码. NSURL *URL = [NSURL URLWithString:@"http://example.com/resources/123.json"]; AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:URL.