精华内容
下载资源
问答
  • json 例子json-simple is a simple java toolkit for JSON. json-simple library is fully compliance with JSON specification (RFC4627). json-simple是用于JSON的简单Java工具包。 json-simple库完全符合JSON规范...

    json 例子

    json-simple is a simple java toolkit for JSON. json-simple library is fully compliance with JSON specification (RFC4627).

    json-simple是用于JSON的简单Java工具包。 json-simple库完全符合JSON规范(RFC4627)。

    json-简单 (json-simple)

    json-simple, json simple example, json example

    json-simple uses Map and List internally for JSON processing. We can use json-simple for parsing JSON data as well as writing JSON to file. One of the best feature of json-simple is that it has no dependency on any third party libraries. json-simple is very lightweight API and serves well with simple JSON requirements.


    json-simple内部使用MapList进行JSON处理。 我们可以使用json-simple来解析JSON数据以及将JSON写入文件。 json-simple的最佳功能之一是它不依赖于任何第三方库。 json-simple是非常轻量级的API,可以很好地满足简单的JSON要求。

    json-简单的Maven (json-simple maven)

    We can add json-simple library to our project by downloading it from here. Since json-simple is available in maven central repository, best way is to add it’s dependency in pom.xml file.

    我们可以通过从此处下载json-simple库到我们的项目中。 由于json-simple在maven中央存储库中可用,因此最好的方法是在pom.xml文件中添加它的依赖项。

    <dependency>
    	<groupId>com.googlecode.json-simple</groupId>
    	<artifactId>json-simple</artifactId>
    	<version>1.1.1</version>
    </dependency>

    json-简单的示例,将JSON写入文件 (json-simple example to write JSON to file)

    Most important class in json-simple API is org.json.simple.JSONObject. We create instance of JSONObject and put key-value pairs into it. JSONObject toJSONString method returns the JSON in String format that we can write to file.

    json-simple API中最重要的类是org.json.simple.JSONObject 。 我们创建JSONObject实例,并将键值对放入其中。 JSONObject toJSONString方法以可写入文件的String格式返回JSON。

    For writing list to a JSON key, we can use org.json.simple.JSONArray.

    为了将列表写入JSON密钥,我们可以使用org.json.simple.JSONArray

    package com.journaldev.json.write;
    
    import java.io.FileWriter;
    import java.io.IOException;
    
    import org.json.simple.JSONArray;
    import org.json.simple.JSONObject;
    
    public class JsonSimpleWriter {
    
    	@SuppressWarnings("unchecked")
    	public static void main(String[] args) {
    		JSONObject obj = new JSONObject();
    		
    		obj.put("name", "Pankaj Kumar");
    		obj.put("age", new Integer(32));
    
    		JSONArray cities = new JSONArray();
    		cities.add("New York");
    		cities.add("Bangalore");
    		cities.add("San Francisco");
    
    		obj.put("cities", cities);
    
    		try {
    
    			FileWriter file = new FileWriter("data.json");
    			file.write(obj.toJSONString());
    			file.flush();
    			file.close();
    
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    
    		System.out.print(obj.toJSONString());
    
    	}
    
    }

    Above class will write data.json, below is the JSON content of this file.

    上面的类将写入data.json ,下面是此文件的JSON内容。

    {"cities":["New York","Bangalore","San Francisco"],"name":"Pankaj Kumar","age":32}

    Notice the @SuppressWarnings("unchecked") annotation on main method? This was done to avoid warnings related to Type safety. JSONObject extends HashMap but doesn’t support Generics, so Eclipse IDE gives warning as below.

    注意方法上的@SuppressWarnings("unchecked") 注释吗? 这样做是为了避免与类型安全有关的警告。 JSONObject扩展了HashMap,但不支持泛型,因此Eclipse IDE发出如下警告。

    Type safety: The method put(Object, Object) belongs to the raw type HashMap. References to generic type HashMap<K,V> should be parameterized
    类型安全:方法put(Object,Object)属于原始类型HashMap。 泛型类型HashMap <K,V>的引用应参数化

    json-简单的示例,从文件中读取JSON (json-simple example to read JSON from file)

    For reading JSON from file, we have to use org.json.simple.parser.JSONParser class. JSONParser parse method returns JSONObject. Then we can retrieve values by passing key names. Below is json-simple example to read JSON from file.

    为了从文件读取JSON,我们必须使用org.json.simple.parser.JSONParser类。 JSONParser的parse方法返回JSONObject。 然后,我们可以通过传递键名称来检索值。 以下是json-simple示例,可从文件读取JSON。

    package com.journaldev.json.write;
    
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.Reader;
    import java.util.Iterator;
    
    import org.json.simple.JSONArray;
    import org.json.simple.JSONObject;
    import org.json.simple.parser.JSONParser;
    import org.json.simple.parser.ParseException;
    
    public class JsonSimpleReader {
    
    	public static void main(String[] args) throws ParseException, FileNotFoundException, IOException {
    		JSONParser parser = new JSONParser();
    		Reader reader = new FileReader("data.json");
    
    		Object jsonObj = parser.parse(reader);
    
    		JSONObject jsonObject = (JSONObject) jsonObj;
    
    		String name = (String) jsonObject.get("name");
    		System.out.println("Name = " + name);
    
    		long age = (Long) jsonObject.get("age");
    		System.out.println("Age = " + age);
    
    		JSONArray cities = (JSONArray) jsonObject.get("cities");
    		
    		@SuppressWarnings("unchecked")
    		Iterator<String> it = cities.iterator();
    		while (it.hasNext()) {
    			System.out.println("City = " + it.next());
    		}
    		reader.close();
    	}
    
    }

    Above json-simple example produces following output.

    上面的json-simple示例产生以下输出。

    Name = Pankaj Kumar
    Age = 32
    City = New York
    City = Bangalore
    City = San Francisco

    That’s all for a quick roundup of json-simple. However if you want to work with complex JSON data, you should use Jackson or Gson. You can also give JSR353 a try that got added into Java 7.

    这就是json-simple的快速总结。 但是,如果要使用复杂的JSON数据,则应使用JacksonGson 。 您也可以尝试将JSR353添加到Java 7中。

    翻译自: https://www.journaldev.com/12668/json-simple-example

    json 例子

    展开全文
  • jl是用于处理结构化JSON日志记录的开发工具。 现代应用程序经常使用结构化日志代替简单的日志消息。 对于计算机系统而言这是优选的,但对于人类而言则是优选的。 jl通过将结构化消息转换为老式的日志行来帮助开发。...
  • 一个简单的go应用程序,可以获取Docker Compose日志输出并解析json日志,以提高可读性。 例子 简单的示例将打印出非json日志消息,并在json日志中查找message元素 docker-compose logs -f | logparse 不要打印非...
  • java模拟post请求发送json例子

    千次阅读 2018-06-13 17:24:12
    java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求,package main.utils; import java.io.*;import java.net.HttpURLConnection;import java...

    java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求,

    package main.utils;
     
    import java.io.*;
    import java.net.HttpURLConnection;
    import java.net.URL;
     
    public class HttpUtilTest {
       Log log = new Log( this .getClass()); //初始化日志类
       /**
        * @作用 使用urlconnection
        * @param url
        * @param Params
        * @return
        * @throws IOException
        */
       public String sendPost(String url,String Params) throws IOException{
         OutputStreamWriter out = null ;
         BufferedReader reader = null ;
         String response= "" ;
         try {
           URL httpUrl = null ; //HTTP URL类 用这个类来创建连接
           //创建URL
           httpUrl = new URL(url);
           //建立连接
           HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
           conn.setRequestMethod( "POST" );
           conn.setRequestProperty( "Content-Type" , "application/json" );
           conn.setRequestProperty( "connection" , "keep-alive" );
           conn.setUseCaches( false ); //设置不要缓存
           conn.setInstanceFollowRedirects( true );
           conn.setDoOutput( true );
           conn.setDoInput( true );
           conn.connect();
           //POST请求
           out = new OutputStreamWriter(
               conn.getOutputStream());
           out.write(Params);
           out.flush();
           //读取响应
           reader = new BufferedReader( new InputStreamReader(
               conn.getInputStream()));
           String lines;
           while ((lines = reader.readLine()) != null ) {
             lines = new String(lines.getBytes(), "utf-8" );
             response+=lines;
           }
           reader.close();
           // 断开连接
           conn.disconnect();
     
           log.info(response.toString());
         } catch (Exception e) {
         System.out.println( "发送 POST 请求出现异常!" +e);
         e.printStackTrace();
         }
         //使用finally块来关闭输出流、输入流
         finally {
         try {
           if (out!= null ){
             out.close();
           }
           if (reader!= null ){
             reader.close();
           }
         }
         catch (IOException ex){
           ex.printStackTrace();
         }
       }
     
         return response;
       }
    }

    方法二:使用httpclient实现

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    import java.io.UnsupportedEncodingException;
    import java.net.URLEncoder;
     
    import main.utils.Log;
     
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.ContentType;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
     
    //post请求方法
       public String sendPost(String url, String data) {
         String response = null ;
         log.info( "url: " + url);
         log.info( "request: " + data);
         try {
           CloseableHttpClient httpclient = null ;
           CloseableHttpResponse httpresponse = null ;
           try {
             httpclient = HttpClients.createDefault();
             HttpPost httppost = new HttpPost(url);
             StringEntity stringentity = new StringEntity(data,
                 ContentType.create( "text/json" , "UTF-8" ));
             httppost.setEntity(stringentity);
             httpresponse = httpclient.execute(httppost);
             response = EntityUtils
                 .toString(httpresponse.getEntity());
             log.info( "response: " + response);
           } finally {
             if (httpclient != null ) {
               httpclient.close();
             }
             if (httpresponse != null ) {
               httpresponse.close();
             }
           }
         } catch (Exception e) {
           e.printStackTrace();
         }
         return response;
       }
    展开全文
  • Docker提供了多种日志机制以动态记录容器运行过程中的痕迹。Docker通过"--log-driver"标志来指定使用哪种类型的日志驱动。... 这里我们就以json-file为例子,来探索一下docker中的日志机制的运转过程。  Do

      Docker提供了多种日志机制以动态记录容器运行过程中的痕迹。Docker通过"--log-driver"标志来指定使用哪种类型的日志驱动。在docker-1.12.6版本中合法的log driver包括json-file,journald,syslog等等,其中默认使用的是json-file。

      这里我们就以json-file为例子,来探索一下docker中的日志机制的运转过程。
      Docker充分利用了golang中提供的面向对象的机理,将各个不同的log driver的创建方法代理给一个工厂来执行,这样调用者就无需了解各个log driver的创建细节,只需要简单的知道自己使用的log driver的名字即可。

    1 相关结构和变量

    1.1 日志驱动的工厂结构

      日志驱动的工厂结构类型用于屏蔽具体的日志驱动实现,为日志驱动的使用者提供一个统一平台。

      ######daemon/logger/factory.go
    type logdriverFactory struct {
    	registry     map[string]Creator				//logdriver的构造方法
    	optValidator map[string]LogOptValidator		//log option检查方法
    	m            sync.Mutex						
    }
      这个logdriverFactory中有三个成员:registry,optValidator和互斥锁m。
      其中registry是map[string]Creator类型,它以log driver的名字作为key,以log driver的构造方法作为value;
      与registry类似,optValidator也是map类型,只不过map的key对应的不是构造函数而是option检查函数。

    1.2 log driver工厂实例

      在docker中,定义了一个工厂实例factory:

    // global factory instance
    var factory = &logdriverFactory{registry: make(map[string]Creator), optValidator: make(map[string]LogOptValidator)} 
      系统中所有log driver的构造方法都会注册到这个实例factory中。

    1.3 json-file 日志驱动与构造器

      在docker中通过logger.Logger这个结构来表示所有的log driver,不过它只是一个接口类型,具体的日志驱动实现了根据自己的特点对logger.Logger提供的接口做了不同的实现。

    // Logger is the interface for docker logging drivers.
    type Logger interface {
    	Log(*Message) error
    	Name() string
    	Close() error
    }

      而json-file定义了自己的logger.Logger:

      ######daemon/logger/jsonfilelog/jsonfilelog.go

    // JSONFileLogger is Logger implementation for default Docker logging.
    type JSONFileLogger struct {
    	buf     *bytes.Buffer
    	writer  *loggerutils.RotateFileWriter
    	mu      sync.Mutex
    	readers map[*logger.LogWatcher]struct{} // stores the active log followers
    	extra   []byte                          // json-encoded extra attributes
    }
    

      JSONFileLogger要称为一个logger.Logger接口,必须实现Logger提供的Log()、Name()、Close()三个函数。其中最重要的就是Log()函数,它实现了具体的日志记录方法,这个后面涉及到。

    1.4 日志驱动名字

      到此我们已经了解到日志驱动的注册都由factory屏蔽底层实现原理来统一安排,但是要使用不同的日志驱动如何来鉴别呢?答案就是日志驱动的“名字”。

      每个日志驱动都预定义了表示自己的 string类型的名字,这些名字都定义在各自的包中。这里的json日志驱动的名字为"json-file",定义如下:

    // Name is the name of the file that the jsonlogger logs to.
    const Name = "json-file"

      即json日志驱动的名字就叫"json-file",使用json日志时就用此名字来注册。

    2 json-file 日志驱动构造器的注册

      前面已经了解到各个日志驱动的实例通过自己的构造方法来构造,而不同日志驱动的构造方法都注册到factory中以便为调用者提供统一的接口。下面来看下json-file构造器的注册。

      json-file的构造器是在jsonfilelog包的init()函数中注册的:

    func init() {
    	if err := logger.RegisterLogDriver(Name, New); err != nil {
    		logrus.Fatal(err)
    	}
    	if err := logger.RegisterLogOptValidator(Name, ValidateLogOpt); err != nil {
    		logrus.Fatal(err)
    	}
    }
      我们知道golang中包的init()函数比main()函数要先执行,因而在实际使用factory创建日志驱动之前,json-file就在自己的包中完成了初始化。jsonfilelog.init()完成两个事情:1) 注册日志驱动的构造方法;2) 注册日志参数检查器。下面我们来依次分析。

    2.1 注册构造方法

      这一部分由logger.RegisterLogDriver(Name, New)来完成。我们来解释一下涉及到几个变量和参数:

        1) logger.RegisterLogDriver()函数定义在github.com/docker/docker/daemon/logger包中;

        2) Name在1.1节讲过,其值为"json-file";

        3) New是json日志驱动实现了Creator接口的构造方法。

      我们看下整个logger包的RegisterLogDriver()函数的细节:

    // RegisterLogDriver registers the given logging driver builder with given logging
    // driver name.
    func RegisterLogDriver(name string, c Creator) error {
    	return factory.register(name, c)
    }
      看到RegisterLogDriver()函数是转手交给无所不能的factory处理:
    func (lf *logdriverFactory) register(name string, c Creator) error {
    	if lf.driverRegistered(name) {
    		return fmt.Errorf("logger: log driver named '%s' is already registered", name)
    	}
    
    	lf.m.Lock()
    	lf.registry[name] = c
    	lf.m.Unlock()
    	return nil
    }

      factory.register()函数首先判断"json-file"这个名字是否已经注册;然后再将名字 "json-file"作为key,构造方法jsonfilelog.New()作为value放到factory.registry[]这个map中。

      到此,json日志驱动的构造方法就已经注册到factory中。后续有使用json日志驱动时,就可以通过"json-file"这个名字找到json日志驱动的构造方法jsonfilelog.New();进而通过jsonfilelog.New()创建出实现了logger.Logger接口的结构JSONFileLogger,然后就可以JSONFileLogger提供的方法来记录json日志了。

    展开全文
  • 精简日志 一个内部旋转的简单日志系统。 动机 为什么进行进程内轮换? 为什么是 JSON? 为什么是类别? 例子
  • 第一次接触springmvc,将例子上传一下提供给新手
  • 原文地址 默认情况下,Docker 捕获所有容器的标准输出(和标准错误),并将其写入使用 JSON 格式的...要使用 json-file 驱动程序作为默认的日志驱动程序,需要设置 daemor.json 文件中的 log-driver 和 log-opt ...

    原文地址

    默认情况下,Docker 捕获所有容器的标准输出(和标准错误),并将其写入使用 JSON 格式的文件。这个 JSON 格式用每个行的来源(stdout 或 stderr)及其时间戳注释。每个日志文件都包含只有一个容器的信息。

    1. 使用

    要使用 json-file 驱动程序作为默认的日志驱动程序,需要设置 daemor.json 文件中的 log-driverlog-opt 关键字为合适的值。这个文件通常在 /etc/docker/(Linux)或 C:\ProgramData\docker\config\daemon.json (Windows)。更多信息参考 daemor.json

    下面示例设置日志驱动程序为 json-file 并设置了 max-size 选项。

    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m"
      }
    }

    重新启动 Docker 以使更改对新创建的容器生效。现有容器即使重启 Docker 也不会使用新的日志记录配置。

    可以在 docker container createdocker run 命令中通过 --log-driver 标志为某个特定容器设置日志驱动程序:

    $ docker run \
          --log-driver json-file --log-opt max-size=10m \
          alpine echo hello world

    1.1 选项

    json-file日志驱动程序支持下面的日志选项:

    选项描述示例值
    max-size滚动前日志的最大大小。一个正整数加上一个代表测量单位(k,m 或 g)的修饰符。默认为 -1(无限制)。--log-opt max-size=10m
    max-file可以存在的最大日志文件数量。如果滚动日志会创建多余文件,则会删除最旧的文件。只有在设置了 max-size 时才有效。一个正整数。 默认为1。--log-opt max-file=3
    labels在启动 Docker 守护进程时适用。守护进程接受的日志相关标签的逗号分隔列表。用于高级日志标记选项。--log-opt labels=production_status,geo
    env在启动 Docker 守护进程时适用。此守护程序接受的与日志相关的环境变量的逗号分隔列表。用于高级日志标记选项。--log-opt env=os,customer
    env-regexenv 类似且兼容。一个正则表达式来匹配与日志相关的环境变量。用于高级日志标记选项。`–log-opt env-regex=^(os

    1.2 示例

    这个例子启动的 alpine 容器最多有 3 个日志文件且每个日志文件不大于 10MB。

    $ docker run -it --log-opt max-size=10m --log-opt max-file=3 alpine ash
    展开全文
  • 一些json数据格式转换的例子

    千次阅读 2016-07-09 13:59:16
    之前对JSON做了一次简单的介绍,并把JSON和XML做了一个简单的比较;那么,我就在想,如果是一个json格式的字符串传到后台,需要怎么对其处理?如果前台页面需要后台返回的是一个json的字符串,那么后台是怎么把json...
  • ajax异步传输json格式的例子

    千次阅读 2012-03-27 11:02:46
     * commons-logging-1.1.1.jar(日志 )  b.使用  将list转为json格式 并去掉一些list中对象中的属性  //设置生成的json格式不包含哪些属性  JsonConfig config=new JsonConfig();  config....
  • 解析埋点日志中的JSON的文件 埋点日志格式化后的json文件 { "eventid": "viewConentDetailEvent", "event": { "pgId": "405", "contentType": "", "contentID": "00824", "contentTile": "", ...
  • 一、业务场景分析: 由于业务的复杂性,数据开发者...本文结合一个具体的案例来介绍如何使用MaxCompute对json格式的日志数据进行转换处理。 1.数据来源:应用实时写入ECS主机的指定目录下的日志文件中; 2.数据格式...
  • grok 正则解析日志例子<1>

    千次阅读 2016-08-27 23:32:10
    下面是日志的样子 55.3.244.1 GET /index.html 15824 0.043 正则的例子 %{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration} 配置文件里是怎么写得? input { file { ...
  • 一开始写爬虫的时候并不知道这个东西,后来写的爬虫逐渐复杂了,json出现的次数也多了起来,这让我很好奇,于是我百度了一下...简单粗暴的举个例子json = '{"a": "Hello", "b":...
  • 将git日志表示为时间序列数据(JSON)。 例子 Git日志可以被格式化,我们还可以为每个提交添加一些统计信息,例如,运行git log --format=%cI%n%s --shortstat将为您提供... 2018-06-07T16:44:26+02:00 add readme ...
  • PHP返回的json,Obj-C无法解析 PHP代码如下: $arr = array( 'name' =>'abc', 'nick' => 'bbc' ...$json_string = json_encode($arr); echo $json_string;  ?>
  • 接着上面一篇来说,这篇主要介绍logstash处理实时数据问题,日志数据更新时,logstash处理方式是默认每15s检查一次文件夹,每5秒检查一次文件,这些参数可以改变的。遇到当处理较多批次数据时,logstash出现卡死状态...
  • PHP json_encode

    千次阅读 2013-12-26 18:15:36
    json_encode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_encode — 对变量进行 JSON 编码 说明 ¶ string json_encode ( mixed $value [, int $options = 0 ] ) 返回 value 值的 ...
  • PHP json_decode

    千次阅读 2013-12-26 17:25:44
    json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 ¶ mixed json_decode ( string $json [, bool $assoc = false [, int $depth ...
  • 1.json_decode()  json_decode  (PHP 5 >= 5.2.0, PECL json >= 1.2.0)  json_decode — 对 JSON 格式的字符串进行编码  说明  mixed json_decode ( string $json [, bool $assoc ] )  接受一个 ...
  • XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析好像没啥难度。今天突然发现Newtonsoft.Json中有关于Json和XML互转的方法,所以记录一下。 一、关于Newtonsoft.Json Newtonsoft.Json(Json.Net)是一款.NET...
  • Spark SQL解析json文件

    2020-11-22 22:06:26
    Spark SQL解析json文件一、get_json_object二、from_json三、explode四、案例:解析json格式日志数据数据处理 先介绍一下会用到的三个函数:get_json_object、from_json、explode 一、get_json_object 从一个json ...
  • JSON示例数据文件

    2019-08-13 07:53:52
    JSON数据示例文件,演示如何使用VBA解析复杂JSON数据。
  • js操作json对象

    万次阅读 2017-10-16 20:36:47
    工作中做了几款自动化测试工具都是跟日志读取相关,日志格式又大多数都是JSON,所以这里把常用的JS操作JSON的方法做了总结: 一、概念简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,...
  • 在今天的文章中,我们将详述如何使用 Logstash 来解析 JSON 文件的日志,并把它导入到 Elasticsearch 中。在之前的文章 “Logstash:Data转换,分析,提取,丰富及核心操作” 也有提到过,但是没有具体的例子。总体...
  • 这篇日志我会写一个客户端json解析的小例子,下篇日志我会写服务器端的代码。 1、进行必要的准备工作。 下载ASIHttpRequest类库,github上有,https://github.com/pokeb/asi-http-request/ 下载json-...
  • 1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,572
精华内容 17,828
关键字:

json日志例子