[{"data":1,"prerenderedAt":1363},["ShallowReactive",2],{"guide-converting-cases-programming-languages":3},{"id":4,"title":5,"body":6,"date":1355,"description":1356,"extension":1357,"meta":1358,"navigation":213,"path":1359,"readingTime":399,"seo":1360,"stem":1361,"__hash__":1362},"guides\u002Fguides\u002Fconverting-cases-programming-languages.md","Converting Cases Across Programming Languages: A Practical Reference",{"type":7,"value":8,"toc":1329},"minimark",[9,14,43,46,50,170,174,179,286,290,602,606,609,772,776,780,796,800,834,838,841,898,902,906,909,944,947,1009,1013,1042,1046,1050,1085,1089,1092,1116,1120,1259,1262,1266,1288,1292,1313,1317,1325],[10,11,13],"h2",{"id":12},"why-case-conversion-matters","Why Case Conversion Matters",[15,16,17,18,22,23,26,27,30,31,34,35,38,39,42],"p",{},"Different contexts demand different naming conventions. An API returns ",[19,20,21],"code",{},"snake_case"," keys, but your TypeScript codebase uses ",[19,24,25],{},"camelCase",". A database column is ",[19,28,29],{},"created_at",", but your Java model needs ",[19,32,33],{},"createdAt",". A CLI flag is ",[19,36,37],{},"--max-retries",", but your Python variable is ",[19,40,41],{},"max_retries",".",[15,44,45],{},"Case conversion bridges these boundaries. Doing it correctly — handling abbreviations, acronyms, and edge cases — separates robust code from fragile string manipulation.",[10,47,49],{"id":48},"case-types-at-a-glance","Case Types at a Glance",[51,52,53,72],"table",{},[54,55,56],"thead",{},[57,58,59,63,66,69],"tr",{},[60,61,62],"th",{},"Case",[60,64,65],{},"Pattern",[60,67,68],{},"Example",[60,70,71],{},"Typical Use",[73,74,75,91,107,122,138,154],"tbody",{},[57,76,77,80,83,88],{},[78,79,25],"td",{},[78,81,82],{},"firstWordLower, restUpper",[78,84,85],{},[19,86,87],{},"getUserById",[78,89,90],{},"JS\u002FTS variables, functions",[57,92,93,96,99,104],{},[78,94,95],{},"PascalCase",[78,97,98],{},"everyWordUpper",[78,100,101],{},[19,102,103],{},"UserService",[78,105,106],{},"Classes, types, components",[57,108,109,111,114,119],{},[78,110,21],{},[78,112,113],{},"all_lower_with_underscores",[78,115,116],{},[19,117,118],{},"user_name",[78,120,121],{},"Python, Ruby, database columns",[57,123,124,127,130,135],{},[78,125,126],{},"SCREAMING_SNAKE",[78,128,129],{},"ALL_UPPER_WITH_UNDERSCORES",[78,131,132],{},[19,133,134],{},"MAX_RETRIES",[78,136,137],{},"Constants",[57,139,140,143,146,151],{},[78,141,142],{},"kebab-case",[78,144,145],{},"all-lower-with-hyphens",[78,147,148],{},[19,149,150],{},"content-type",[78,152,153],{},"URLs, CLI flags, HTTP headers",[57,155,156,159,162,167],{},[78,157,158],{},"UPPER_KEBAB",[78,160,161],{},"ALL-UPPER-WITH-HYPHENS",[78,163,164],{},[19,165,166],{},"CONTENT-TYPE",[78,168,169],{},"HTTP headers (alternative)",[10,171,173],{"id":172},"javascript-typescript","JavaScript \u002F TypeScript",[175,176,178],"h3",{"id":177},"using-lodash","Using Lodash",[180,181,186],"pre",{"className":182,"code":183,"language":184,"meta":185,"style":185},"language-javascript shiki shiki-themes github-light github-dark","import { camelCase, snakeCase, kebabCase, upperFirst } from 'lodash'\n\ncamelCase('user_name')      \u002F\u002F 'userName'\nsnakeCase('userName')       \u002F\u002F 'user_name'\nkebabCase('userName')       \u002F\u002F 'user-name'\nupperFirst(camelCase('user_name'))  \u002F\u002F 'UserName' (PascalCase)\n","javascript","",[19,187,188,208,215,234,251,266],{"__ignoreMap":185},[189,190,193,197,201,204],"span",{"class":191,"line":192},"line",1,[189,194,196],{"class":195},"szBVR","import",[189,198,200],{"class":199},"sVt8B"," { camelCase, snakeCase, kebabCase, upperFirst } ",[189,202,203],{"class":195},"from",[189,205,207],{"class":206},"sZZnC"," 'lodash'\n",[189,209,211],{"class":191,"line":210},2,[189,212,214],{"emptyLinePlaceholder":213},true,"\n",[189,216,218,221,224,227,230],{"class":191,"line":217},3,[189,219,25],{"class":220},"sScJk",[189,222,223],{"class":199},"(",[189,225,226],{"class":206},"'user_name'",[189,228,229],{"class":199},")      ",[189,231,233],{"class":232},"sJ8bj","\u002F\u002F 'userName'\n",[189,235,237,240,242,245,248],{"class":191,"line":236},4,[189,238,239],{"class":220},"snakeCase",[189,241,223],{"class":199},[189,243,244],{"class":206},"'userName'",[189,246,247],{"class":199},")       ",[189,249,250],{"class":232},"\u002F\u002F 'user_name'\n",[189,252,254,257,259,261,263],{"class":191,"line":253},5,[189,255,256],{"class":220},"kebabCase",[189,258,223],{"class":199},[189,260,244],{"class":206},[189,262,247],{"class":199},[189,264,265],{"class":232},"\u002F\u002F 'user-name'\n",[189,267,269,272,274,276,278,280,283],{"class":191,"line":268},6,[189,270,271],{"class":220},"upperFirst",[189,273,223],{"class":199},[189,275,25],{"class":220},[189,277,223],{"class":199},[189,279,226],{"class":206},[189,281,282],{"class":199},"))  ",[189,284,285],{"class":232},"\u002F\u002F 'UserName' (PascalCase)\n",[175,287,289],{"id":288},"manual-conversion","Manual Conversion",[180,291,293],{"className":182,"code":292,"language":184,"meta":185,"style":185},"\u002F\u002F camelCase to snake_case\nfunction toSnakeCase(str) {\n  return str\n    .replace(\u002F([A-Z])\u002Fg, '_$1')\n    .toLowerCase()\n    .replace(\u002F^_\u002F, '')\n}\n\n\u002F\u002F snake_case to camelCase\nfunction toCamelCase(str) {\n  return str.replace(\u002F_([a-z])\u002Fg, (_, c) => c.toUpperCase())\n}\n\n\u002F\u002F Any case to PascalCase\nfunction toPascalCase(str) {\n  return str\n    .replace(\u002F([_-][a-z])\u002Fg, (_, c) => c.slice(1).toUpperCase())\n    .replace(\u002F^[a-z]\u002F, c => c.toUpperCase())\n}\n",[19,294,295,300,317,325,362,372,397,403,408,414,428,479,484,489,495,509,516,567,597],{"__ignoreMap":185},[189,296,297],{"class":191,"line":192},[189,298,299],{"class":232},"\u002F\u002F camelCase to snake_case\n",[189,301,302,305,308,310,314],{"class":191,"line":210},[189,303,304],{"class":195},"function",[189,306,307],{"class":220}," toSnakeCase",[189,309,223],{"class":199},[189,311,313],{"class":312},"s4XuR","str",[189,315,316],{"class":199},") {\n",[189,318,319,322],{"class":191,"line":217},[189,320,321],{"class":195},"  return",[189,323,324],{"class":199}," str\n",[189,326,327,330,333,335,338,341,345,348,350,353,356,359],{"class":191,"line":236},[189,328,329],{"class":199},"    .",[189,331,332],{"class":220},"replace",[189,334,223],{"class":199},[189,336,337],{"class":206},"\u002F",[189,339,223],{"class":340},"sA_wV",[189,342,344],{"class":343},"sj4cs","[A-Z]",[189,346,347],{"class":340},")",[189,349,337],{"class":206},[189,351,352],{"class":195},"g",[189,354,355],{"class":199},", ",[189,357,358],{"class":206},"'_$1'",[189,360,361],{"class":199},")\n",[189,363,364,366,369],{"class":191,"line":253},[189,365,329],{"class":199},[189,367,368],{"class":220},"toLowerCase",[189,370,371],{"class":199},"()\n",[189,373,374,376,378,380,382,385,388,390,392,395],{"class":191,"line":268},[189,375,329],{"class":199},[189,377,332],{"class":220},[189,379,223],{"class":199},[189,381,337],{"class":206},[189,383,384],{"class":195},"^",[189,386,387],{"class":340},"_",[189,389,337],{"class":206},[189,391,355],{"class":199},[189,393,394],{"class":206},"''",[189,396,361],{"class":199},[189,398,400],{"class":191,"line":399},7,[189,401,402],{"class":199},"}\n",[189,404,406],{"class":191,"line":405},8,[189,407,214],{"emptyLinePlaceholder":213},[189,409,411],{"class":191,"line":410},9,[189,412,413],{"class":232},"\u002F\u002F snake_case to camelCase\n",[189,415,417,419,422,424,426],{"class":191,"line":416},10,[189,418,304],{"class":195},[189,420,421],{"class":220}," toCamelCase",[189,423,223],{"class":199},[189,425,313],{"class":312},[189,427,316],{"class":199},[189,429,431,433,436,438,440,442,445,448,450,452,454,457,459,461,464,467,470,473,476],{"class":191,"line":430},11,[189,432,321],{"class":195},[189,434,435],{"class":199}," str.",[189,437,332],{"class":220},[189,439,223],{"class":199},[189,441,337],{"class":206},[189,443,444],{"class":340},"_(",[189,446,447],{"class":343},"[a-z]",[189,449,347],{"class":340},[189,451,337],{"class":206},[189,453,352],{"class":195},[189,455,456],{"class":199},", (",[189,458,387],{"class":312},[189,460,355],{"class":199},[189,462,463],{"class":312},"c",[189,465,466],{"class":199},") ",[189,468,469],{"class":195},"=>",[189,471,472],{"class":199}," c.",[189,474,475],{"class":220},"toUpperCase",[189,477,478],{"class":199},"())\n",[189,480,482],{"class":191,"line":481},12,[189,483,402],{"class":199},[189,485,487],{"class":191,"line":486},13,[189,488,214],{"emptyLinePlaceholder":213},[189,490,492],{"class":191,"line":491},14,[189,493,494],{"class":232},"\u002F\u002F Any case to PascalCase\n",[189,496,498,500,503,505,507],{"class":191,"line":497},15,[189,499,304],{"class":195},[189,501,502],{"class":220}," toPascalCase",[189,504,223],{"class":199},[189,506,313],{"class":312},[189,508,316],{"class":199},[189,510,512,514],{"class":191,"line":511},16,[189,513,321],{"class":195},[189,515,324],{"class":199},[189,517,519,521,523,525,527,529,532,534,536,538,540,542,544,546,548,550,552,555,557,560,563,565],{"class":191,"line":518},17,[189,520,329],{"class":199},[189,522,332],{"class":220},[189,524,223],{"class":199},[189,526,337],{"class":206},[189,528,223],{"class":340},[189,530,531],{"class":343},"[_-][a-z]",[189,533,347],{"class":340},[189,535,337],{"class":206},[189,537,352],{"class":195},[189,539,456],{"class":199},[189,541,387],{"class":312},[189,543,355],{"class":199},[189,545,463],{"class":312},[189,547,466],{"class":199},[189,549,469],{"class":195},[189,551,472],{"class":199},[189,553,554],{"class":220},"slice",[189,556,223],{"class":199},[189,558,559],{"class":343},"1",[189,561,562],{"class":199},").",[189,564,475],{"class":220},[189,566,478],{"class":199},[189,568,570,572,574,576,578,580,582,584,586,588,591,593,595],{"class":191,"line":569},18,[189,571,329],{"class":199},[189,573,332],{"class":220},[189,575,223],{"class":199},[189,577,337],{"class":206},[189,579,384],{"class":195},[189,581,447],{"class":343},[189,583,337],{"class":206},[189,585,355],{"class":199},[189,587,463],{"class":312},[189,589,590],{"class":195}," =>",[189,592,472],{"class":199},[189,594,475],{"class":220},[189,596,478],{"class":199},[189,598,600],{"class":191,"line":599},19,[189,601,402],{"class":199},[175,603,605],{"id":604},"transforming-object-keys","Transforming Object Keys",[15,607,608],{},"A common use case: converting API response keys from snake_case to camelCase:",[180,610,612],{"className":182,"code":611,"language":184,"meta":185,"style":185},"function transformKeys(obj) {\n  if (Array.isArray(obj)) return obj.map(transformKeys)\n  if (obj !== null && typeof obj === 'object') {\n    return Object.fromEntries(\n      Object.entries(obj).map(([key, value]) => [\n        toCamelCase(key),\n        transformKeys(value)\n      ])\n    )\n  }\n  return obj\n}\n",[19,613,614,628,654,684,698,730,738,746,751,756,761,768],{"__ignoreMap":185},[189,615,616,618,621,623,626],{"class":191,"line":192},[189,617,304],{"class":195},[189,619,620],{"class":220}," transformKeys",[189,622,223],{"class":199},[189,624,625],{"class":312},"obj",[189,627,316],{"class":199},[189,629,630,633,636,639,642,645,648,651],{"class":191,"line":210},[189,631,632],{"class":195},"  if",[189,634,635],{"class":199}," (Array.",[189,637,638],{"class":220},"isArray",[189,640,641],{"class":199},"(obj)) ",[189,643,644],{"class":195},"return",[189,646,647],{"class":199}," obj.",[189,649,650],{"class":220},"map",[189,652,653],{"class":199},"(transformKeys)\n",[189,655,656,658,661,664,667,670,673,676,679,682],{"class":191,"line":217},[189,657,632],{"class":195},[189,659,660],{"class":199}," (obj ",[189,662,663],{"class":195},"!==",[189,665,666],{"class":343}," null",[189,668,669],{"class":195}," &&",[189,671,672],{"class":195}," typeof",[189,674,675],{"class":199}," obj ",[189,677,678],{"class":195},"===",[189,680,681],{"class":206}," 'object'",[189,683,316],{"class":199},[189,685,686,689,692,695],{"class":191,"line":236},[189,687,688],{"class":195},"    return",[189,690,691],{"class":199}," Object.",[189,693,694],{"class":220},"fromEntries",[189,696,697],{"class":199},"(\n",[189,699,700,703,706,709,711,714,717,719,722,725,727],{"class":191,"line":253},[189,701,702],{"class":199},"      Object.",[189,704,705],{"class":220},"entries",[189,707,708],{"class":199},"(obj).",[189,710,650],{"class":220},[189,712,713],{"class":199},"(([",[189,715,716],{"class":312},"key",[189,718,355],{"class":199},[189,720,721],{"class":312},"value",[189,723,724],{"class":199},"]) ",[189,726,469],{"class":195},[189,728,729],{"class":199}," [\n",[189,731,732,735],{"class":191,"line":268},[189,733,734],{"class":220},"        toCamelCase",[189,736,737],{"class":199},"(key),\n",[189,739,740,743],{"class":191,"line":399},[189,741,742],{"class":220},"        transformKeys",[189,744,745],{"class":199},"(value)\n",[189,747,748],{"class":191,"line":405},[189,749,750],{"class":199},"      ])\n",[189,752,753],{"class":191,"line":410},[189,754,755],{"class":199},"    )\n",[189,757,758],{"class":191,"line":416},[189,759,760],{"class":199},"  }\n",[189,762,763,765],{"class":191,"line":430},[189,764,321],{"class":195},[189,766,767],{"class":199}," obj\n",[189,769,770],{"class":191,"line":481},[189,771,402],{"class":199},[10,773,775],{"id":774},"python","Python",[175,777,779],{"id":778},"built-in-limited","Built-in (Limited)",[180,781,784],{"className":782,"code":783,"language":774,"meta":185,"style":185},"language-python shiki shiki-themes github-light github-dark","# Only handles a few conversions\n'userName'.replace('_', '-').lower()  # not general-purpose\n",[19,785,786,791],{"__ignoreMap":185},[189,787,788],{"class":191,"line":192},[189,789,790],{},"# Only handles a few conversions\n",[189,792,793],{"class":191,"line":210},[189,794,795],{},"'userName'.replace('_', '-').lower()  # not general-purpose\n",[175,797,799],{"id":798},"using-inflection","Using inflection",[180,801,803],{"className":782,"code":802,"language":774,"meta":185,"style":185},"import inflection\n\ninflection.camelize('user_name')         # 'UserName' (PascalCase)\ninflection.camelize('user_name', False)   # 'userName' (camelCase)\ninflection.underscore('UserName')         # 'user_name' (snake_case)\ninflection.dasherize('user_name')         # 'user-name' (kebab-case)\n",[19,804,805,810,814,819,824,829],{"__ignoreMap":185},[189,806,807],{"class":191,"line":192},[189,808,809],{},"import inflection\n",[189,811,812],{"class":191,"line":210},[189,813,214],{"emptyLinePlaceholder":213},[189,815,816],{"class":191,"line":217},[189,817,818],{},"inflection.camelize('user_name')         # 'UserName' (PascalCase)\n",[189,820,821],{"class":191,"line":236},[189,822,823],{},"inflection.camelize('user_name', False)   # 'userName' (camelCase)\n",[189,825,826],{"class":191,"line":253},[189,827,828],{},"inflection.underscore('UserName')         # 'user_name' (snake_case)\n",[189,830,831],{"class":191,"line":268},[189,832,833],{},"inflection.dasherize('user_name')         # 'user-name' (kebab-case)\n",[175,835,837],{"id":836},"using-pydantic","Using pydantic",[15,839,840],{},"Pydantic models support automatic alias generation:",[180,842,844],{"className":782,"code":843,"language":774,"meta":185,"style":185},"from pydantic import BaseModel, ConfigDict\n\nclass User(BaseModel):\n    model_config = ConfigDict(alias_generator=lambda x: inflection.camelize(x, False))\n\n    first_name: str\n    last_name: str\n\n# Accepts camelCase input, uses snake_case internally\nuser = User.model_validate({'firstName': 'Alice', 'lastName': 'Smith'})\nuser.first_name  # 'Alice'\n",[19,845,846,851,855,860,865,869,874,879,883,888,893],{"__ignoreMap":185},[189,847,848],{"class":191,"line":192},[189,849,850],{},"from pydantic import BaseModel, ConfigDict\n",[189,852,853],{"class":191,"line":210},[189,854,214],{"emptyLinePlaceholder":213},[189,856,857],{"class":191,"line":217},[189,858,859],{},"class User(BaseModel):\n",[189,861,862],{"class":191,"line":236},[189,863,864],{},"    model_config = ConfigDict(alias_generator=lambda x: inflection.camelize(x, False))\n",[189,866,867],{"class":191,"line":253},[189,868,214],{"emptyLinePlaceholder":213},[189,870,871],{"class":191,"line":268},[189,872,873],{},"    first_name: str\n",[189,875,876],{"class":191,"line":399},[189,877,878],{},"    last_name: str\n",[189,880,881],{"class":191,"line":405},[189,882,214],{"emptyLinePlaceholder":213},[189,884,885],{"class":191,"line":410},[189,886,887],{},"# Accepts camelCase input, uses snake_case internally\n",[189,889,890],{"class":191,"line":416},[189,891,892],{},"user = User.model_validate({'firstName': 'Alice', 'lastName': 'Smith'})\n",[189,894,895],{"class":191,"line":430},[189,896,897],{},"user.first_name  # 'Alice'\n",[10,899,901],{"id":900},"java","Java",[175,903,905],{"id":904},"using-jackson","Using Jackson",[15,907,908],{},"Jackson can map between naming conventions during serialization:",[180,910,913],{"className":911,"code":912,"language":900,"meta":185,"style":185},"language-java shiki shiki-themes github-light github-dark","@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)\npublic class User {\n    private String firstName;\n    private String lastName;\n}\n\u002F\u002F Serializes as: {\"first_name\": \"Alice\", \"last_name\": \"Smith\"}\n",[19,914,915,920,925,930,935,939],{"__ignoreMap":185},[189,916,917],{"class":191,"line":192},[189,918,919],{},"@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)\n",[189,921,922],{"class":191,"line":210},[189,923,924],{},"public class User {\n",[189,926,927],{"class":191,"line":217},[189,928,929],{},"    private String firstName;\n",[189,931,932],{"class":191,"line":236},[189,933,934],{},"    private String lastName;\n",[189,936,937],{"class":191,"line":253},[189,938,402],{},[189,940,941],{"class":191,"line":268},[189,942,943],{},"\u002F\u002F Serializes as: {\"first_name\": \"Alice\", \"last_name\": \"Smith\"}\n",[15,945,946],{},"Available strategies:",[51,948,949,959],{},[54,950,951],{},[57,952,953,956],{},[60,954,955],{},"Strategy",[60,957,958],{},"Converts to",[73,960,961,973,985,997],{},[57,962,963,968],{},[78,964,965],{},[19,966,967],{},"SnakeCaseStrategy",[78,969,970],{},[19,971,972],{},"first_name",[57,974,975,980],{},[78,976,977],{},[19,978,979],{},"UpperCamelCaseStrategy",[78,981,982],{},[19,983,984],{},"FirstName",[57,986,987,992],{},[78,988,989],{},[19,990,991],{},"KebabCaseStrategy",[78,993,994],{},[19,995,996],{},"first-name",[57,998,999,1004],{},[78,1000,1001],{},[19,1002,1003],{},"LowerDotCaseStrategy",[78,1005,1006],{},[19,1007,1008],{},"first.name",[175,1010,1012],{"id":1011},"using-guava","Using Guava",[180,1014,1016],{"className":911,"code":1015,"language":900,"meta":185,"style":185},"import com.google.common.base.CaseFormat;\n\nCaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, \"firstName\");  \u002F\u002F \"first_name\"\nCaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, \"first_name\"); \u002F\u002F \"FirstName\"\nCaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, \"firstName\");     \u002F\u002F \"first-name\"\n",[19,1017,1018,1023,1027,1032,1037],{"__ignoreMap":185},[189,1019,1020],{"class":191,"line":192},[189,1021,1022],{},"import com.google.common.base.CaseFormat;\n",[189,1024,1025],{"class":191,"line":210},[189,1026,214],{"emptyLinePlaceholder":213},[189,1028,1029],{"class":191,"line":217},[189,1030,1031],{},"CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, \"firstName\");  \u002F\u002F \"first_name\"\n",[189,1033,1034],{"class":191,"line":236},[189,1035,1036],{},"CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, \"first_name\"); \u002F\u002F \"FirstName\"\n",[189,1038,1039],{"class":191,"line":253},[189,1040,1041],{},"CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, \"firstName\");     \u002F\u002F \"first-name\"\n",[10,1043,1045],{"id":1044},"go","Go",[175,1047,1049],{"id":1048},"using-strcase","Using strcase",[180,1051,1054],{"className":1052,"code":1053,"language":1044,"meta":185,"style":185},"language-go shiki shiki-themes github-light github-dark","import \"github.com\u002Fiancoleman\u002Fstrcase\"\n\nstrcase.ToCamel(\"user_name\")    \u002F\u002F \"UserName\" (PascalCase)\nstrcase.ToLowerCamel(\"user_name\") \u002F\u002F \"userName\" (camelCase)\nstrcase.ToSnake(\"userName\")     \u002F\u002F \"user_name\"\nstrcase.ToKebab(\"userName\")     \u002F\u002F \"user-name\"\n",[19,1055,1056,1061,1065,1070,1075,1080],{"__ignoreMap":185},[189,1057,1058],{"class":191,"line":192},[189,1059,1060],{},"import \"github.com\u002Fiancoleman\u002Fstrcase\"\n",[189,1062,1063],{"class":191,"line":210},[189,1064,214],{"emptyLinePlaceholder":213},[189,1066,1067],{"class":191,"line":217},[189,1068,1069],{},"strcase.ToCamel(\"user_name\")    \u002F\u002F \"UserName\" (PascalCase)\n",[189,1071,1072],{"class":191,"line":236},[189,1073,1074],{},"strcase.ToLowerCamel(\"user_name\") \u002F\u002F \"userName\" (camelCase)\n",[189,1076,1077],{"class":191,"line":253},[189,1078,1079],{},"strcase.ToSnake(\"userName\")     \u002F\u002F \"user_name\"\n",[189,1081,1082],{"class":191,"line":268},[189,1083,1084],{},"strcase.ToKebab(\"userName\")     \u002F\u002F \"user-name\"\n",[175,1086,1088],{"id":1087},"using-struct-tags","Using struct tags",[15,1090,1091],{},"Go's JSON and YAML tags handle naming convention mapping:",[180,1093,1095],{"className":1052,"code":1094,"language":1044,"meta":185,"style":185},"type User struct {\n    FirstName string `json:\"first_name\" yaml:\"first-name\"`\n    LastName  string `json:\"last_name\"  yaml:\"last-name\"`\n}\n",[19,1096,1097,1102,1107,1112],{"__ignoreMap":185},[189,1098,1099],{"class":191,"line":192},[189,1100,1101],{},"type User struct {\n",[189,1103,1104],{"class":191,"line":210},[189,1105,1106],{},"    FirstName string `json:\"first_name\" yaml:\"first-name\"`\n",[189,1108,1109],{"class":191,"line":217},[189,1110,1111],{},"    LastName  string `json:\"last_name\"  yaml:\"last-name\"`\n",[189,1113,1114],{"class":191,"line":236},[189,1115,402],{},[10,1117,1119],{"id":1118},"edge-cases-to-handle","Edge Cases to Handle",[51,1121,1122,1138],{},[54,1123,1124],{},[57,1125,1126,1129,1131,1133,1135],{},[60,1127,1128],{},"Input",[60,1130,25],{},[60,1132,21],{},[60,1134,142],{},[60,1136,1137],{},"Pitfall",[73,1139,1140,1165,1188,1213,1235],{},[57,1141,1142,1147,1152,1157,1162],{},[78,1143,1144],{},[19,1145,1146],{},"XMLParser",[78,1148,1149],{},[19,1150,1151],{},"xmlParser",[78,1153,1154],{},[19,1155,1156],{},"xml_parser",[78,1158,1159],{},[19,1160,1161],{},"xml-parser",[78,1163,1164],{},"Acronym splitting",[57,1166,1167,1172,1175,1180,1185],{},[78,1168,1169],{},[19,1170,1171],{},"getUserID",[78,1173,1174],{},"—",[78,1176,1177],{},[19,1178,1179],{},"get_user_id",[78,1181,1182],{},[19,1183,1184],{},"get-user-id",[78,1186,1187],{},"Consecutive uppercase",[57,1189,1190,1195,1200,1205,1210],{},[78,1191,1192],{},[19,1193,1194],{},"HTTPSConnection",[78,1196,1197],{},[19,1198,1199],{},"httpsConnection",[78,1201,1202],{},[19,1203,1204],{},"https_connection",[78,1206,1207],{},[19,1208,1209],{},"https-connection",[78,1211,1212],{},"Acronym at start",[57,1214,1215,1220,1225,1227,1232],{},[78,1216,1217],{},[19,1218,1219],{},"already_snake",[78,1221,1222],{},[19,1223,1224],{},"alreadySnake",[78,1226,1174],{},[78,1228,1229],{},[19,1230,1231],{},"already-snake",[78,1233,1234],{},"Double underscore",[57,1236,1237,1242,1246,1251,1256],{},[78,1238,1239],{},[19,1240,1241],{},"3dModel",[78,1243,1244],{},[19,1245,1241],{},[78,1247,1248],{},[19,1249,1250],{},"3d_model",[78,1252,1253],{},[19,1254,1255],{},"3d-model",[78,1257,1258],{},"Leading digit",[15,1260,1261],{},"No library handles all edge cases perfectly. Test against your actual data, especially names with acronyms and numbers.",[10,1263,1265],{"id":1264},"key-takeaways","Key Takeaways",[1267,1268,1269,1273,1276,1279,1282,1285],"ul",{},[1270,1271,1272],"li",{},"Case conversion is essential at API boundaries, database mappings, and framework integrations",[1270,1274,1275],{},"Lodash (JS), inflection (Python), Guava (Java), and strcase (Go) handle common conversions",[1270,1277,1278],{},"Object key transformation is the most frequent use case — build a recursive transformer once and reuse it",[1270,1280,1281],{},"Acronyms and consecutive uppercase letters are the hardest edge cases — test against real data",[1270,1283,1284],{},"Prefer library solutions over regex for production code; they handle more edge cases",[1270,1286,1287],{},"Use framework features (Pydantic aliases, Jackson naming strategies, Go struct tags) when available",[10,1289,1291],{"id":1290},"related-guides","Related Guides",[1267,1293,1294,1301,1307],{},[1270,1295,1296],{},[1297,1298,1300],"a",{"href":1299},"\u002Fguides\u002Fnaming-conventions-guide","Naming Conventions Guide",[1270,1302,1303],{},[1297,1304,1306],{"href":1305},"\u002Fguides\u002Fcamelcase-vs-snake-case","camelCase vs snake_case",[1270,1308,1309],{},[1297,1310,1312],{"href":1311},"\u002Fguides\u002Fcode-readability-tips","Code Readability Tips",[10,1314,1316],{"id":1315},"try-it-yourself","Try It Yourself",[15,1318,1319,1320,1324],{},"Convert text between any naming convention instantly with our free ",[1297,1321,1323],{"href":1322},"\u002Ftools\u002Fcase-converter","Case Converter",". Paste any string and see conversions across camelCase, PascalCase, snake_case, kebab-case, and more.",[1326,1327,1328],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sA_wV, html code.shiki .sA_wV{--shiki-default:#032F62;--shiki-dark:#DBEDFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":185,"searchDepth":210,"depth":210,"links":1330},[1331,1332,1333,1338,1343,1347,1351,1352,1353,1354],{"id":12,"depth":210,"text":13},{"id":48,"depth":210,"text":49},{"id":172,"depth":210,"text":173,"children":1334},[1335,1336,1337],{"id":177,"depth":217,"text":178},{"id":288,"depth":217,"text":289},{"id":604,"depth":217,"text":605},{"id":774,"depth":210,"text":775,"children":1339},[1340,1341,1342],{"id":778,"depth":217,"text":779},{"id":798,"depth":217,"text":799},{"id":836,"depth":217,"text":837},{"id":900,"depth":210,"text":901,"children":1344},[1345,1346],{"id":904,"depth":217,"text":905},{"id":1011,"depth":217,"text":1012},{"id":1044,"depth":210,"text":1045,"children":1348},[1349,1350],{"id":1048,"depth":217,"text":1049},{"id":1087,"depth":217,"text":1088},{"id":1118,"depth":210,"text":1119},{"id":1264,"depth":210,"text":1265},{"id":1290,"depth":210,"text":1291},{"id":1315,"depth":210,"text":1316},"2026-05-28","Learn how to convert between camelCase, snake_case, PascalCase, and more in Python, JavaScript, Java, and Go — with library and manual approaches.","md",{"immutable":213},"\u002Fguides\u002Fconverting-cases-programming-languages",{"title":5,"description":1356},"guides\u002Fconverting-cases-programming-languages","sG4qKmI2mMlkaYnfH5Y3fxF46EQxR-uEgoG3IpxpF4c",1780401332458]