json串操作

import org.apache.commons.lang.StringUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;

import java.io.IOException;

/**
 * Json序列化与反序列化工具类
 */
public class JsonUtil {

    private static final ObjectMapper objectMapper = new ObjectMapper();

    /**
     * 对象转JSON
     *
     * @param t
     *            对象
     * @return
     */
    public static <T> String toJson(T t){
        try {
            return objectMapper.writeValueAsString(t);
        }catch (IOException e){
            throw new RuntimeException("JsonUtil.toJson error",e);
        }
    }

    /**
     * JSON转对象
     *
     * @param jsonString
     *            json字符串
     * @param valueType
     *            对象类型
     * @return
     */
    public static <T> T fromJson(String jsonString, Class<T> valueType) {
        if (StringUtils.isBlank(jsonString)) {
            return null;
        }
        try {
            return objectMapper.readValue(jsonString, valueType);
        } catch (IOException e) {
            throw new RuntimeException("JsonUtil.fromJson error", e);
        }

    }

    /**
     *
     * @param jsonString
     *            json字符串
     * @param typeReference
     *            泛型信息
     * @return
     */
    public static <T> T fromJson(String jsonString, TypeReference<T> typeReference) {
        if (StringUtils.isBlank(jsonString)) {
            return null;
        }
        try {
            return objectMapper.readValue(jsonString, typeReference);
        } catch (IOException e) {
            throw new RuntimeException("JsonUtil.fromJson error", e);
        }
    }


    /**
     * 判断是否json 字符串
     * @param str
     * @return
     */
    public static boolean isJsonString(String str) {
        if(StringUtils.isBlank(str)){
            return false;
        }
        try {
            objectMapper.readTree(str);
            return true;
        } catch (IOException e) {
            return false;
        }
    }
}

 

转载于:https://www.cnblogs.com/cc-robot/p/11068376.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌入式软件C语言移植JSON操作需要经过以下几个步骤: 1. 理解JSON口格式:首先需要了解JSON格式的数据结构,包括对象、数组、字符、数字等类型,以及其在口中的传输格式。这有助于正确解析和处理口传输的JSON数据。 2. 寻找合适的JSON库:嵌入式系统一般资源有限,因此需要选择一个适合该平台的轻量级JSON库来进行移植。常用的轻量级JSON库包括cJSONjson-c等,选择一个适合嵌入式系统的库进行移植。 3. 移植JSON库:根据目标嵌入式系统的特性和限制,对选定的JSON库进行移植,包括编译、配置和适配。确保JSON库能够在目标系统上正常运行和提供必要的功能。 4. 实现口通信功能:使用嵌入式系统提供的口通信接口或者外部口模块,实现口的初始化、发送和接收功能。根据嵌入式系统的特性,可能需要实现中断、DMA等方式来提高口通信的效率。 5. 解析和处理JSON数据:在接收到口传输的JSON数据后,使用移植的JSON库对数据进行解析,提取出需要的信息,并进行相应的处理。根据目标系统的需求,可能需要将JSON数据转换成适合系统处理的数据格式。 通过以上操作,就可以在嵌入式软件C语言中成功移植JSON操作。这样就可以实现从口接收JSON数据、解析和处理,并可以根据需求进行相应的反馈和操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值