
git clone https://github.com/Microsoft/vcpkg.gitcd vcpkg./bootstrap-vcpkg.sh./vcpkg integrate install./vcpkg install jsoncpp
最后一步需要语言包

JsonCpp安装好以后就可以进行代码编写了
#include <iostream>#include "json/json.h"#include <string>#include <windows.h>using namespace std;#if defined(GNUC)#pragma GCC diagnostic push#pragma GCC diagnostic ignored “-Wdeprecated-declarations”#elif defined(_MSC_VER)#pragma warning(disable : 4996)#endif#pragma comment(linker,"/subsystem:\"windows\" entry:\"mainCRTStartup\"")int main(){HWND hWnd = NULL;OpenClipboard(hWnd);char* jsonString = nullptr;if (IsClipboardFormatAvailable(CF_TEXT)){HANDLE h = GetClipboardData(CF_TEXT);jsonString = (char*)GlobalLock(h);GlobalUnlock(h);}CloseClipboard();if (jsonString == nullptr || jsonString == NULL) {return 0;}Json::Reader reader;Json::Value rootObj ;reader.parse(jsonString, rootObj);if (rootObj.empty()) {return 0;}bool enter = false;int enter_num = 0;while (*jsonString){if (*jsonString == '\n') {enter_num++;}if (enter_num > 2) {enter = true;}jsonString++;}string echoJson;if (enter) {Json::FastWriter fastWriter;echoJson = fastWriter.write(rootObj);}else{Json::StyledWriter styleWriter;echoJson = styleWriter.write(rootObj);}if (rootObj.empty() || echoJson.empty() || echoJson.size() == 0) {return 0;}hWnd = NULL;OpenClipboard(hWnd);//打开剪切板EmptyClipboard();//清空剪切板HANDLE hHandle = GlobalAlloc(GMEM_FIXED, echoJson.size()+1);char* pData = (char*)GlobalLock(hHandle);strcpy(pData, echoJson.c_str());SetClipboardData(CF_TEXT, hHandle);GlobalUnlock(hHandle);CloseClipboard();if (enter) {MessageBoxA(NULL, "剪贴板数据已转换为【单】行", "提示", 64);}else {MessageBoxA(NULL, "剪贴板数据已转换为【多】行", "提示", 64);}return 0;}
打开注册表定位到如下位置
计算机\HKEY_CLASSES_ROOT\Directory\Background\shell
新增项
名称:JsonCpp
默认值:JSON 格式化
JsonCpp新增项
名字:command
默认值:"C:\temp_code\jsoncpp.exe" "%V"

文章转载自上下博客,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




